# 一般不需要配置name,默认是目录名,但是如果你的系统中有同名的目录,需要手动配置 # name: ulthon_admin services: ulthon_admin: build: context: ../../.. dockerfile: source/stack/docker-dev-sync/Dockerfile restart: unless-stopped ports: - "8000:8000" volumes: # Host code mounted to staging area (not the runtime directory) # sync.sh will rsync from here to /var/www/html - ../../..:/var/www/source environment: # Sync polling interval in seconds (default: 3) - SYNC_INTERVAL=${SYNC_INTERVAL:-3} - XHPROF_ENABLE=${XHPROF_ENABLE:-false} - XHPROF_SAVER=${XHPROF_SAVER:-file} - XHPROF_FILE_DIR=${XHPROF_FILE_DIR:-} - XHGUI_UPLOAD_URL=${XHGUI_UPLOAD_URL:-} - XHGUI_UPLOAD_TOKEN=${XHGUI_UPLOAD_TOKEN:-ulthon-admin-xhprof} extra_hosts: - "host.docker.internal:host-gateway" depends_on: mysql: condition: service_healthy mysql: image: mysql:8.0 restart: unless-stopped ports: - "13306:3306" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: ulthon volumes: - ../../../docker-dev-data/mysql:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine restart: unless-stopped ports: - "16379:6379" volumes: - ../../../docker-dev-data/redis:/data phpmyadmin: image: phpmyadmin:latest restart: unless-stopped ports: - "18888:80" environment: PMA_HOST: mysql depends_on: mysql: condition: service_healthy xhgui: image: xhgui/xhgui:0.24.x restart: unless-stopped profiles: ["xhgui"] ports: - "8142:80" volumes: # 挂载全局认证配置(Basic Auth) - ../../../source/docker/xhgui-config.php:/var/www/xhgui/config/config.php environment: - XHGUI_UPLOAD_TOKEN=${XHGUI_UPLOAD_TOKEN:-ulthon-admin-xhprof} # Basic Auth 认证(默认 admin/xhgui123,通过 .env 或环境变量覆盖) - XHGUI_AUTH_USER=${XHGUI_AUTH_USER:-admin} - XHGUI_AUTH_PASS=${XHGUI_AUTH_PASS:-xhgui123} depends_on: mysql: condition: service_healthy