version: '3.1' services: db: image: mysql:latest volumes: - ./db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password MYSQL_DATABASE: nymph MYSQL_USER: nymph MYSQL_PASSWORD_FILE: /run/secrets/db_password secrets: - db_root_password - db_password mta: build: context: . dockerfile: Dockerfile-mta volumes: - ./mail:/var/spool/postfix # This app doesn't use PubSub. # pubsub: # depends_on: # - db # build: # context: . # dockerfile: Dockerfile-pubsub # volumes: # - ./app:/nymph # command: ["./wait-for-it.sh", "db:3306", "--", "php", "/nymph/pubsub.php"] # ports: # - "8081:8080" # environment: # MYSQL_HOST: db:3306 # MYSQL_DATABASE: nymph # MYSQL_USER: nymph # MYSQL_PASSWORD_FILE: /run/secrets/db_password # secrets: # - db_password web: depends_on: - db - mta # - pubsub build: context: . dockerfile: Dockerfile-web volumes: - ./app:/var/www/html ports: - "8080:80" environment: MYSQL_HOST: db:3306 MYSQL_DATABASE: nymph MYSQL_USER: nymph MYSQL_PASSWORD_FILE: /run/secrets/db_password PUBSUB_HOST: pubsub:8080 secrets: - db_password secrets: db_password: file: db_password.txt db_root_password: file: db_root_password.txt