name: agentrove-web services: redis: image: redis:7-alpine container_name: agentrove-redis-web restart: always ports: - "${REDIS_PORT}:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 sandbox-setup: image: docker:27-cli container_name: agentrove-sandbox-setup-web restart: "no" volumes: - /var/run/docker.sock:/var/run/docker.sock command: sh -c "docker pull ${DOCKER_IMAGE}" api: build: context: . dockerfile: backend/Dockerfile container_name: agentrove-api-web restart: unless-stopped command: ["api"] user: root privileged: true group_add: - "0" depends_on: redis: condition: service_healthy sandbox-setup: condition: service_completed_successfully ports: - "${BACKEND_PORT}:8080" volumes: - ./backend:/app - ./storage:/data/agentrove/storage - /app/__pycache__ - /var/run/docker.sock:/var/run/docker.sock env_file: .env networks: - default - sandbox frontend: build: context: ./frontend dockerfile: Dockerfile container_name: agentrove-frontend-web restart: unless-stopped depends_on: - api ports: - "${FRONTEND_PORT}:3000" volumes: - ./frontend:/app - /app/node_modules env_file: .env networks: sandbox: name: agentrove-sandbox-net volumes: redis_data: driver: local