services: postgres: image: postgres:16-alpine container_name: app-deploy-platform-postgres restart: unless-stopped environment: POSTGRES_DB: app_deploy_platform POSTGRES_USER: appdeploy POSTGRES_PASSWORD: appdeploy ports: - "55432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U appdeploy -d app_deploy_platform"] interval: 10s timeout: 5s retries: 10 volumes: - ./.data/postgres:/var/lib/postgresql/data redis: image: redis:7-alpine container_name: app-deploy-platform-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "56379:6379" volumes: - ./.data/redis:/data namesrv: image: apache/rocketmq:5.3.2 container_name: app-deploy-platform-rocketmq-namesrv restart: unless-stopped command: sh mqnamesrv ports: - "9876:9876" volumes: - ./.data/rocketmq/namesrv/logs:/home/rocketmq/logs - ./.data/rocketmq/namesrv/store:/home/rocketmq/store broker: image: apache/rocketmq:5.3.2 container_name: app-deploy-platform-rocketmq-broker restart: unless-stopped depends_on: - namesrv environment: NAMESRV_ADDR: namesrv:9876 command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/broker.conf ports: - "10909:10909" - "10911:10911" - "10912:10912" volumes: - ./deploy/rocketmq/broker.conf:/home/rocketmq/broker.conf:ro - ./.data/rocketmq/broker/logs:/home/rocketmq/logs - ./.data/rocketmq/broker/store:/home/rocketmq/store backend: build: context: ./backend container_name: app-deploy-platform-backend restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_started namesrv: condition: service_started broker: condition: service_started command: ["/usr/local/bin/app-deploy-platform", "--config", "/app/config/prod.yaml"] ports: - "18080:8080" volumes: - ./ops-scripts:/app/ops-scripts:ro - ./config:/app/config:ro - ../chat-app:/workspace/source/chat-app - ./.data/builds:/workspace/builds - ${HOME}/.ssh:/root/.ssh:ro frontend: build: context: ./frontend container_name: app-deploy-platform-frontend restart: unless-stopped depends_on: - backend ports: - "18090:80"