kalkutago/docker-compose_dev.yml

77 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