services: # 前端服务 shierfeng-frontend: build: context: ../shierfeng-fastapi-frontend dockerfile: Dockerfile image: shierfeng-frontend:latest container_name: shierfeng-frontend-test ports: - "80:80" volumes: - ../shierfeng-fastapi-frontend/bin/nginx.dockermy.conf:/etc/nginx/conf.d/default.conf depends_on: - shierfeng-backend-my networks: - shierfeng-network-test # 后端服务(MySQL版本) shierfeng-backend-my: build: context: ../shierfeng-fastapi-backend dockerfile: Dockerfile.my image: shierfeng-backend-my:latest container_name: shierfeng-backend-my-test ports: - "9099:9099" environment: TRANSPORT_CRYPTO_ENABLED: "false" TRANSPORT_CRYPTO_MODE: "off" depends_on: shierfeng-mysql: condition: service_healthy shierfeng-redis: condition: service_healthy networks: - shierfeng-network-test # MySQL服务 shierfeng-mysql: image: mysql:8.0 container_name: shierfeng-mysql-test environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: shierfeng-fastapi ports: - "13307:3306" volumes: - ../shierfeng-fastapi-backend/sql/shierfeng-fastapi.sql:/docker-entrypoint-initdb.d/01-shierfeng-fastapi.sql - ./disable_captcha.sql:/docker-entrypoint-initdb.d/02-disable-captcha.sql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --skip-character-set-client-handshake=1 networks: - shierfeng-network-test healthcheck: test: ["CMD", "bash", "-c", "mysqladmin ping -h localhost -u root -proot && mysql -h localhost -u root -proot -e 'SELECT 1'"] interval: 5s timeout: 10s retries: 30 # Redis服务 shierfeng-redis: image: redis:latest container_name: shierfeng-redis-test ports: - "16380:6379" networks: - shierfeng-network-test healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 10s retries: 30 # 网络配置 networks: shierfeng-network-test: name: shierfeng-network-test driver: bridge