services/templates/compose/docker-compose.yaml

113 lines
2.7 KiB
YAML
Raw Normal View History

2022-11-18 15:08:16 +00:00
---
2022-11-18 19:05:58 +00:00
version: "3.9"
2022-11-18 15:08:16 +00:00
networks:
2022-11-18 19:05:58 +00:00
flow:
name: "flow"
2022-11-18 15:08:16 +00:00
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"
image: localhost/flow/traefik:${TRAEFIK_VERSION}
2022-11-18 15:08:16 +00:00
build:
2022-11-18 19:05:58 +00:00
context: "../traefik"
2022-11-18 15:08:16 +00:00
networks:
2022-11-18 19:05:58 +00:00
flow:
2022-11-18 15:08:16 +00:00
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
# Traefik TLS volume
- type: "bind"
source: "${TRAEFIK_TLS_HOST_DIR}"
target: "${TRAEFIK_TLS_CONTAINER_DIR}"
# -- Code flow --
forgejo:
2022-11-18 15:08:16 +00:00
container_name: "code-flow"
image: localhost/flow/forgejo:${FORGEJO_VERSION}
2022-11-18 15:08:16 +00:00
build:
context: "../forgejo"
2022-11-18 15:08:16 +00:00
expose:
- "${FORGEJO_SSH_PORT}"
- "${FORGEJO_HTTP_PORT}"
2022-11-18 15:08:16 +00:00
networks:
2022-11-18 19:05:58 +00:00
flow:
ipv4_address: "${FORGEJO_CONTAINER_IPV4_ADDRESS}"
2022-11-18 15:08:16 +00:00
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
# ForgeJo data volume
2022-11-18 15:08:16 +00:00
- type: "bind"
source: "${FORGEJO_DATA_HOST_DIR}"
target: "${FORGEJO_DATA_CONTAINER_DIR}"
# -- Free Flow 2 --
gotosocial:
container_name: "free-flow"
image: localhost/flow/gotosocial:${GTS_VERSION}
build:
context: "../gotosocial"
expose:
- "${GTS_PORT}"
networks:
flow:
ipv4_address: "${GTS_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
# Go To Social data volume
- type: "bind"
source: "${GTS_DATA_HOST_DIR}"
target: "${GTS_DATA_CONTAINER_DIR}"