services: postgres: image: postgres:18.3 container_name: k12study-dev-postgres restart: unless-stopped environment: POSTGRES_DB: ${K12STUDY_DB_NAME:-k12study} POSTGRES_USER: ${K12STUDY_DB_USER:-k12study} POSTGRES_PASSWORD: ${K12STUDY_DB_PASSWORD:-k12study} PGDATA: /var/lib/postgresql/18/docker TZ: ${TZ:-Asia/Shanghai} ports: - "${K12STUDY_DB_PORT:-5432}:5432" volumes: - ${K12STUDY_RUN_DIR:-./runtime}/postgres/pg18:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U ${K12STUDY_DB_USER:-k12study} -d ${K12STUDY_DB_NAME:-k12study}"] interval: 10s timeout: 5s retries: 10 networks: - k12study-dev-net redis: image: redis:7 container_name: k12study-dev-redis restart: unless-stopped command: redis-server --appendonly yes ports: - "${K12STUDY_REDIS_PORT:-6379}:6379" volumes: - ${K12STUDY_RUN_DIR:-./runtime}/redis/data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 10 networks: - k12study-dev-net nacos: image: nacos/nacos-server:v3.2.1-2026.04.03 container_name: k12study-dev-nacos restart: unless-stopped environment: MODE: standalone NACOS_AUTH_ENABLE: "false" NACOS_AUTH_TOKEN: ${NACOS_AUTH_TOKEN:-azEyc3R1ZHktbmFjb3MtZGV2LXRva2VuLTIwMjY=} NACOS_AUTH_IDENTITY_KEY: ${NACOS_AUTH_IDENTITY_KEY:-serverIdentity} NACOS_AUTH_IDENTITY_VALUE: ${NACOS_AUTH_IDENTITY_VALUE:-security} TZ: ${TZ:-Asia/Shanghai} JVM_XMS: 256m JVM_XMX: 512m JVM_XMN: 128m ports: - "${K12STUDY_REGISTRY_PORT:-8848}:8848" - "${K12STUDY_REGISTRY_GRPC_PORT:-9848}:9848" - "${K12STUDY_REGISTRY_RAFT_PORT:-9849}:9849" volumes: - ${K12STUDY_RUN_DIR:-./runtime}/nacos/logs:/home/nacos/logs - ${K12STUDY_RUN_DIR:-./runtime}/nacos/data:/home/nacos/data networks: - k12study-dev-net networks: k12study-dev-net: name: ${K12STUDY_DOCKER_NET:-k12study-dev-net} driver: bridge