version: "3" services: app: image: app:build env_file: .env stdin_open: true tty: true links: - db - redis volumes: - ./app:/app - /app/node_modules/ - assets_volume:/app/experimenter/static/assets/ - static_volume:/app/experimenter/served/ - /app/.cache command: bash -c "/app/bin/wait-for-it.sh db:5432 -- python /app/manage.py collectstatic --noinput;python /app/manage.py runserver 0:7001" networks: - private_nw - public_nw yarn: image: app:build env_file: .env tty: true volumes: - ./app:/app - /app/node_modules/ - assets_volume:/app/experimenter/static/assets/ - static_volume:/app/experimenter/served/ - /app/.cache command: bash -c "yarn watch" worker: image: app:build env_file: .env links: - db - redis volumes: - ./app:/app command: bash -c "/app/bin/wait-for-it.sh db:5432 -- celery -A experimenter worker -l debug" networks: - private_nw - public_nw beat: image: app:build env_file: .env links: - db - redis volumes: - ./app:/app command: bash -c "/app/bin/wait-for-it.sh db:5432 -- celery -A experimenter beat --pidfile /celerybeat.pid -s /celerybeat-schedule -l debug" networks: - private_nw nginx: build: ./nginx env_file: .env links: - app ports: - "443:443" networks: - private_nw - public_nw volumes: - static_volume:/app/experimenter/served/ db: restart: always image: postgres:9.6.17 environment: POSTGRES_PASSWORD: postgres volumes: - db_volume:/var/lib/postgresql networks: - private_nw redis: image: redis networks: - private_nw volumes: db_volume: static_volume: assets_volume: networks: private_nw: internal: true public_nw: