services: api: build: ./api/ env_file: ./api/.env ports: - 5000:5000 healthcheck: test: "curl -f http://api:5000/health/" interval: 15s timeout: 12s retries: 10 start_period: 30s deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 30s max_attempts: 20 window: 60s resources: limits: memory: 1GB cpus: '1' reservations: memory: 50MB cpus: '0.1' depends_on: bucket: condition: service_healthy cache: condition: service_healthy client: build: ./client/ restart: always env_file: ./client/.env ports: - 3000:3000 healthcheck: test: "curl -f http://client:3000/" interval: 15s timeout: 12s retries: 10 start_period: 30s deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 30s max_attempts: 20 window: 60s resources: limits: memory: 500MB cpus: '1' reservations: memory: 50MB cpus: '0.1' depends_on: api: condition: service_healthy cache: image: redis:6.2.7-alpine ports: - 6379:6379 healthcheck: test: redis-cli -a foobared ping | grep PONG interval: 10s timeout: 5s retries: 5 start_period: 30s deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 30s max_attempts: 20 window: 60s resources: limits: memory: 2GB cpus: '1' reservations: memory: 100MB cpus: '0.1' volumes: - ./data/redis/etc:/usr/local/etc/redis - ./data/redis/data:/data bucket: image: quay.io/minio/minio:RELEASE.2022-09-07T22-25-02Z command: server /data --console-address ":9001" restart: unless-stopped ports: - 9001:9001 - 9000:9000 environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: password MINIO_ACCESS_KEY: minio_access_key MINIO_SECRET_KEY: minio_secret_key healthcheck: test: "curl -f http://localhost:9000/minio/health/live" interval: 30s timeout: 10s retries: 5 start_period: 60s deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 30s max_attempts: 20 window: 60s resources: limits: memory: 4GB cpus: '2' reservations: memory: 50MB cpus: '0.1' volumes: - ./data/minio:/data