--- version: '3.2' services: postgresql: image: postgres volumes: - database:/var/lib/postgresql/data networks: - internal environment: - POSTGRES_PASSWORD=${PG_PASS:-thisisnotagoodpassword} - POSTGRES_USER=passbook - POSTGRES_DB=passbook labels: - traefik.enable=false env_file: - .env redis: image: redis networks: - internal labels: - traefik.enable=false server: image: beryju/passbook:${PASSBOOK_TAG:-0.10.9-stable} command: server environment: PASSBOOK_REDIS__HOST: redis PASSBOOK_POSTGRESQL__HOST: postgresql PASSBOOK_POSTGRESQL__PASSWORD: ${PG_PASS} ports: - 8000 networks: - internal labels: - traefik.port=8000 - traefik.docker.network=internal - traefik.frontend.rule=PathPrefix:/ env_file: - .env worker: image: beryju/passbook:${PASSBOOK_TAG:-0.10.9-stable} command: worker networks: - internal labels: - traefik.enable=false environment: PASSBOOK_REDIS__HOST: redis PASSBOOK_POSTGRESQL__HOST: postgresql PASSBOOK_POSTGRESQL__PASSWORD: ${PG_PASS} env_file: - .env static: image: beryju/passbook-static:${PASSBOOK_TAG:-0.10.9-stable} networks: - internal labels: - traefik.frontend.rule=PathPrefix:/static, /robots.txt, /favicon.ico - traefik.port=80 - traefik.docker.network=internal traefik: image: traefik:1.7 command: --api --docker --defaultentrypoints=https --entryPoints='Name:http Address::80 Redirect.EntryPoint:https' --entryPoints='Name:https Address::443 TLS' volumes: - /var/run/docker.sock:/var/run/docker.sock:ro ports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" - "127.0.0.1:8080:8080" networks: - internal volumes: database: driver: local networks: internal: {}