version: "3.9" networks: maillist-internal: driver: bridge services: mysql: image: mysql:8.0 container_name: maillist-mysql environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE:-maillist} MYSQL_USER: ${MYSQL_USER:-maillist} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - mysql_data:/var/lib/mysql - ./database/schema.sql:/docker-entrypoint-initdb.d/schema.sql networks: - maillist-internal healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 postfix: build: ./postfix container_name: postfix env_file: .env depends_on: mysql: condition: service_healthy ports: - "25:25" networks: - maillist-internal api: build: ./api container_name: maillist-api env_file: .env depends_on: mysql: condition: service_healthy ports: - "8000:8000" networks: - maillist-internal volumes: mysql_data: