--- version: "3.8" networks: forge: name: "forge-flow" ipam: driver: "default" config: - subnet: "${NETWORK_FORGE_FLOW_SUBNET}" volumes: traefik-shared: name: "traefik-config-shared-volume" services: # -- Traffic flow -- traefik: container_name: "traffic-flow" build: args: TRAEFIK_VERSION: "${TRAEFIK_VERSION}" context: "./traefik" networks: forge: ipv4_address: "${TRAEFIK_CONTAINER_IPV4_ADDRESS}" ports: - target: 80 published: 80 protocol: "tcp" mode: "host" - target: 443 published: 443 protocol: "tcp" mode: "host" - target: ${TRAEFIK_EXTERNAL_SSH_PORT} published: ${TRAEFIK_EXTERNAL_SSH_PORT} protocol: "tcp" mode: "host" restart: "always" volumes: - type: "volume" source: "traefik-shared" target: "${TRAEFIK_SHARED_MOUNT_POINT}" - type: "bind" source: "/etc/timezone" target: "/etc/timezone" read_only: true - type: "bind" source: "/etc/localtime" target: "/etc/localtime" read_only: true # For TLS certificate #- type: "bind" # source: "" # target: "" # -- Code flow -- gitea: container_name: "code-flow" build: args: FLOW_GID: "${FLOW_GID}" FLOW_UID: "${FLOW_UID}" GITEA_HOME: "${GITEA_HOME}" GITEA_WORK_DIR: "${GITEA_WORK_DIR}" GITEA_CUSTOM: "${GITEA_CUSTOM}" GITEA_APP_INI: "${GITEA_APP_INI}" GITEA_BIN: "${GITEA_BIN}" GITEA_DATA_CONTAINER_DIR: "${GITEA_DATA_CONTAINER_DIR}" GITEA_TMP: "${GITEA_TMP}" context: "./gitea" expose: - "${GITEA_SSH_PORT}" - "${GITEA_HTTP_PORT}" networks: forge: ipv4_address: "${GITEA_CONTAINER_IPV4_ADDRESS}" restart: "always" volumes: - type: "volume" source: "traefik-shared" target: "${TRAEFIK_SHARED_MOUNT_POINT}" - type: "bind" source: "/etc/timezone" target: "/etc/timezone" read_only: true - type: "bind" source: "/etc/localtime" target: "/etc/localtime" read_only: true # Gitea data volume - type: "bind" source: "${GITEA_DATA_HOST_DIR}" target: "${GITEA_DATA_CONTAINER_DIR}"