version: '2' services: db: image: "postgres:9.6" environment: POSTGRES_PASSWORD: password volumes: - ./misc/dbdata:/var/lib/postgresql/data web: # Docker hack to wait until Postgres is up, then run stuff. command: bash -c "while ! nc -w 1 -z db 5432; do sleep 0.1; done; ./manage.py migrate; while :; do ./manage.py runserver_plus 0.0.0.0:8000; sleep 1; done" build: . image: web volumes: - .:/code depends_on: - db environment: IN_DOCKER: 1 DB_NAME: "postgres" DB_USER: "postgres" DB_HOST: "db" DB_PASSWORD: "password" smtp: command: /usr/local/bin/smtp2http -listen :2525 -strict=false -webhook http://web:8000/webhooks/email/ image: web ports: - "2525:2525" webserver: image: jumanjiman/caddy depends_on: - web ports: - "80:8000" command: -port 8000 -host 0.0.0.0 "proxy / web:8000 { }"