version: '3.1' services: web: depends_on: - fpm image: nginx:1.19 ports: - "8080:80" volumes: - ./app:/app - ./config/site.conf:/etc/nginx/conf.d/default.conf networks: - app-network db: build: context: ./config dockerfile: Dockerfile-mysql command: "--innodb_use_native_aio=0" volumes: - ./db_data:/var/lib/mysql networks: - app-network 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: ./config dockerfile: Dockerfile-mta volumes: - ./mail:/var/spool/postfix networks: - app-network pubsub: depends_on: - db build: context: ./config dockerfile: Dockerfile-pubsub volumes: - ./app:/app command: ["./wait-for-it.sh", "db:3306", "-t", "120", "--", "php", "/app/pubsub.php"] ports: - "8081:8080" networks: - app-network environment: MYSQL_HOST: db:3306 MYSQL_DATABASE: nymph MYSQL_USER: nymph MYSQL_PASSWORD_FILE: /run/secrets/db_password TILMELD_SECRET_FILE: /run/secrets/tilmeld_secret secrets: - db_password - tilmeld_secret fpm: depends_on: - db - mta - pubsub build: context: ./config dockerfile: Dockerfile-fpm volumes: - ./app:/app - ./maintenance:/maintenance networks: - app-network environment: MYSQL_HOST: db:3306 MYSQL_DATABASE: nymph MYSQL_USER: nymph MYSQL_PASSWORD_FILE: /run/secrets/db_password PUBSUB_HOST: pubsub:8080 TILMELD_SECRET_FILE: /run/secrets/tilmeld_secret secrets: - db_password - tilmeld_secret networks: app-network: driver: bridge secrets: db_password: file: db_password.txt db_root_password: file: db_root_password.txt tilmeld_secret: file: tilmeld_secret.txt