76 lines
1.8 KiB
YAML
76 lines
1.8 KiB
YAML
version: "3.5"
|
|
|
|
services:
|
|
server:
|
|
# build: ./server
|
|
build:
|
|
context: ./server
|
|
dockerfile: Dockerfile.debug
|
|
networks:
|
|
- web
|
|
- internal
|
|
environment:
|
|
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password
|
|
POSTGRES_USER: kalkutago
|
|
POSTGRES_DB: kalkutago
|
|
POSTGRES_HOST: database
|
|
secrets: [ postgres-password, cookie-secret ]
|
|
depends_on: [ database ]
|
|
expose: [ 8000 ]
|
|
# ports:
|
|
# # TODO remove in prod
|
|
# - 8000:8000
|
|
volumes:
|
|
- ./client/dist:/src/public:ro
|
|
labels:
|
|
traefik.enable: true
|
|
traefik.http.routers.kalkutago_server.rule: 'Host(`kalkutago`) && PathPrefix(`/api`)'
|
|
database:
|
|
image: postgres
|
|
environment:
|
|
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password
|
|
POSTGRES_USER: kalkutago
|
|
POSTGRES_DB: kalkutago
|
|
secrets: [ postgres-password ]
|
|
networks: [ internal ]
|
|
volumes:
|
|
- ./db.mount:/var/lib/postgresql/data
|
|
|
|
client_devserver:
|
|
build: ./client
|
|
volumes: [ ./client:/client/ ]
|
|
command: "yarn dev --host 0.0.0.0"
|
|
networks: [ web ]
|
|
labels:
|
|
traefik.enable: true
|
|
traefik.http.routers.kalkutago_client.rule: 'Host(`kalkutago`) && !PathPrefix(`/api`)'
|
|
traefik.http.services.kalkutago_client.loadbalancer.server.port: 5173
|
|
|
|
proxy:
|
|
image: traefik
|
|
volumes:
|
|
- source: /var/run/docker.sock
|
|
target: /var/run/docker.sock
|
|
type: bind
|
|
- source: ./traefik.yaml
|
|
target: /traefik.yaml
|
|
type: bind
|
|
- source: ./traefik-config
|
|
target: /config
|
|
type: bind
|
|
ports:
|
|
- 80:80
|
|
networks: [ web ]
|
|
|
|
secrets:
|
|
postgres-password:
|
|
file: ./server/postgres.pw
|
|
cookie-secret:
|
|
file: ./server/cookie-secret.pw
|
|
|
|
networks:
|
|
internal:
|
|
internal: true
|
|
web:
|
|
external: true
|