name: galaxy services: mysql: image: registry.cn-shanghai.aliyuncs.com/swoole-public/mysql:8.0 restart: unless-stopped environment: MYSQL_DATABASE: ${MYSQL_DATABASE:-code_galaxy} MYSQL_USER: ${MYSQL_USER:-galaxy} MYSQL_PASSWORD: ${MYSQL_PASSWORD:?MYSQL_PASSWORD is required} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?MYSQL_ROOT_PASSWORD is required} TZ: ${TZ:-Asia/Shanghai} command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: - mysql-data:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"] interval: 5s timeout: 5s retries: 30 start_period: 20s networks: - internal redis: image: registry.cn-shanghai.aliyuncs.com/swoole-public/redis:7.4-alpine restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 20 networks: - internal galaxy: image: ${GALAXY_IMAGE:-registry.cn-shanghai.aliyuncs.com/swoole-public/galaxy}:${GALAXY_VERSION:-latest} restart: unless-stopped depends_on: mysql: condition: service_healthy redis: condition: service_healthy environment: APP_NAME: CodeGalaxy APP_ENV: prod DB_HOST: mysql DB_PORT: 3306 DB_DATABASE: ${MYSQL_DATABASE:-code_galaxy} DB_USERNAME: ${MYSQL_USER:-galaxy} DB_PASSWORD: ${MYSQL_PASSWORD:?MYSQL_PASSWORD is required} DB_CHARSET: utf8mb4 DB_COLLATION: utf8mb4_unicode_ci DB_PREFIX: galaxy_ REDIS_HOST: redis REDIS_PORT: 6379 REDIS_DB: 0 REDIS_HOST_QUEUE: redis REDIS_PORT_QUEUE: 6379 REDIS_DB_QUEUE: 1 APP_BASE_URL: ${GALAXY_PUBLIC_URL:-http://localhost:8080}/api WEBHOOK_BASE_URL: ${GALAXY_PUBLIC_URL:-http://localhost:8080}/api AGENT_SERVER_URL: ${GALAXY_PUBLIC_URL:-http://localhost:8080} SIMPLE_JWT_SECRET: ${SIMPLE_JWT_SECRET:?SIMPLE_JWT_SECRET is required} SSO_JWT_SECRET: ${SSO_JWT_SECRET:?SSO_JWT_SECRET is required} ENCRYPT_KEY: ${ENCRYPT_KEY:?ENCRYPT_KEY is required} SWARM_CREDENTIAL_KEY: ${SWARM_CREDENTIAL_KEY:?SWARM_CREDENTIAL_KEY is required} SSH_RELAY_ENABLED: "true" SSH_RELAY_INTERNAL_TOKEN: ${SSH_RELAY_INTERNAL_TOKEN:?SSH_RELAY_INTERNAL_TOKEN is required} GALAXY_INSTALL_TOKEN: ${GALAXY_INSTALL_TOKEN:?GALAXY_INSTALL_TOKEN is required} GALAXY_ADMIN_EMAIL: ${GALAXY_ADMIN_EMAIL:-admin@example.com} MIDDLEWARE_ENABLE_CORS: "true" PROJECT_MONITOR_ENABLED: "true" HELM_SERVICE_ENABLED: "true" GALAXY_AUTO_INIT: "true" TZ: ${TZ:-Asia/Shanghai} ports: - "${GALAXY_HTTP_PORT:-8080}:80" - "${GALAXY_SSH_PORT:-9522}:9522" networks: - internal volumes: mysql-data: redis-data: networks: internal: driver: bridge