Autopilot/docker-compose.yml

93 lines
2.7 KiB
YAML
Raw Normal View History

version: '3.8'
services:
# ─── PostgreSQL Database ──────────────────────────────────────────────────
postgres:
image: postgres:15-alpine
container_name: autopilot-postgres
environment:
POSTGRES_DB: ${DB_NAME:-autopilot_db}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME:-autopilot_db}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- autopilot-net
# ─── AutoPilot Master (Cloud Coordinator Backend) ─────────────────────────
master:
build:
context: ./master
dockerfile: Dockerfile
image: autopilot/master:latest
container_name: autopilot-master
ports:
- "9090:9090"
environment:
- SPRING_PROFILES_ACTIVE=prod
- DB_URL=${DB_URL}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- JWT_SECRET=${JWT_SECRET}
- AWS_REGION=${AWS_REGION}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- S3_BUCKET_NAME=${S3_BUCKET_NAME}
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
networks:
- autopilot-net
# ─── AutoPilot UI (React Frontend via Nginx) ───────────────────────────────
ui:
build:
context: ./ui
dockerfile: Dockerfile
image: autopilot/ui:latest
container_name: autopilot-ui
ports:
- "80:80"
- "443:443"
depends_on:
- master
restart: unless-stopped
networks:
- autopilot-net
# ─── AutoPilot Worker (Execution Engine) ──────────────────────────────────
# NOTE: The worker needs access to a real browser (Chrome/Firefox).
# For headless browser automation, run the worker on a separate machine
# or a server with Xvfb installed. Uncomment if running on a capable host.
#
# worker:
# build:
# context: ./worker
# dockerfile: Dockerfile
# image: autopilot/worker:latest
# container_name: autopilot-worker
# environment:
# - LOCALAGENT_CLOUD_URL=${LOCALAGENT_CLOUD_URL}
# - LOCALAGENT_POLLING_ENABLED=${LOCALAGENT_POLLING_ENABLED}
# depends_on:
# - master
# restart: unless-stopped
# networks:
# - autopilot-net
networks:
autopilot-net:
driver: bridge
volumes:
postgres_data: