services: frontend: build: context: ./Dialectic.Frontend dockerfile: Dockerfile ports: - "${DIALECTIC_FRONTEND_PORT:-3000}:3000" environment: - REACT_APP_DIALECTIC_BACKEND_HOST=${DIALECTIC_BACKEND_URL:-http://localhost:8000} networks: - app-network backend: build: context: ./Dialectic.Backend dockerfile: Dockerfile ports: - "${DIALECTIC_BACKEND_PORT:-8000}:8000" volumes: - dialectic_config:/app/config environment: - ENV_MODE=prod - ENCRYPTION_KEY=${ENCRYPTION_KEY:-BgS9_9K2UMYxiYnP-BE63UEdi7a6PHaaZ6rQZQnSx54=} - CONFIG_PATH=/app/config/dialectic.yaml depends_on: db: condition: service_healthy networks: - app-network db: image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword} MYSQL_DATABASE: ${MYSQL_DATABASE:-dialectic} MYSQL_USER: ${MYSQL_USER:-dialectic} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-dialectic} ports: - "${DB_PORT:-3306}:3306" volumes: - mysql_data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 20s retries: 10 networks: - app-network volumes: mysql_data: dialectic_config: networks: app-network: driver: bridge