services: backend: build: context: ./backend dockerfile: Dockerfile container_name: oci-agent-backend restart: unless-stopped environment: - APP_SECRET=${APP_SECRET:-change-me-in-production-use-a-long-random-string} - JWT_EXPIRY_HOURS=${JWT_EXPIRY_HOURS:-12} - DATA_DIR=/data - OCI_CLI_SUPPRESS_FILE_PERMISSIONS_WARNING=True volumes: - agent-data:/data networks: - agent-net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"] interval: 30s timeout: 10s retries: 3 frontend: image: nginx:alpine container_name: oci-agent-frontend restart: unless-stopped volumes: - ./frontend/index.html:/usr/share/nginx/html/index.html:ro - ./frontend-react/dist:/usr/share/nginx/html/app:ro - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro ports: - "${PORT:-8080}:80" depends_on: - backend networks: - agent-net volumes: agent-data: driver: local networks: agent-net: driver: bridge