--- version: "3.8" services: db: build: context: . dockerfile: mariadb.Dockerfile env_file: - ./.env environment: MYSQL_CATS_DATABASE: cats volumes: - db:/var/lib/mysql ports: - "13306:3306" healthcheck: test: out=$$(mysqladmin ping -h localhost -P 3306 -u root -p$$MYSQL_ROOT_PASSWORD 2>&1); echo $$out | grep 'mysqld is alive' || { echo $$out ; exit 1 ; } smtp: build: context: . dockerfile: smtp.Dockerfile volumes: - maildir:/home/catchall/Maildir mail: build: context: . dockerfile: mail.Dockerfile volumes: - maildir:/home/catchall/Maildir env_file: - ./.env webdb: build: context: . dockerfile: webdb.Dockerfile environment: DEPLOYMENT_NAME: "CAcert.org Website (local development)" MYSQL_WEBDB_HOSTNAME: db MYSQL_WEBDB_DATABASE: cacert CSR_DIRECTORY: /csr CRT_DIRECTORY: /crt DEFAULT_HOSTNAME: www.cacert.localhost SECURE_HOSTNAME: secure.cacert.localhost TVERIFY_HOSTNAME: tverify.cacert.localhost INSECURE_PORT: 8080 SECURE_PORT: 8443 RETURN_ADDRESS: "returns@cacert.localhost" SMTP_HOST: smtp env_file: - ./.env ports: - "8080:80" - "8443:443" depends_on: - db - smtp volumes: - ./cacert-software:/www mgr: build: context: . dockerfile: mgr.Dockerfile env_file: - ./.env ports: - "9443:443" depends_on: - db - mail volumes: - ./cacert-mgr:/var/www/mgr cats: build: context: . dockerfile: cats.Dockerfile env_file: - ./.env environment: CATS_NORMAL_HOSTNAME: "cats.cacert.localhost:7443" CATS_SECURE_HOSTNAME: "cats.cacert.localhost:7443" MYSQL_CATS_DATABASE: cats ports: - "7443:443" depends_on: - db volumes: - ./cacert-cats:/var/www/cats volumes: db: { } maildir: { }