services: server: image: quay.io/ldcraft/woj-server:1.3.1-dev restart: unless-stopped healthcheck: test: [ "CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8000/health" ] interval: 5s command: server environment: - REDIS_ADDRESS=cache - DATABASE_HOST=db - DATABASE_USER=dev - DATABASE_PASSWORD=password - DATABASE_NAME=dev - STORAGE_ENDPOINT=storage:9000 - STORAGE_ACCESS_KEY=access_key - STORAGE_SECRET_KEY=secret_key - STORAGE_BUCKET=woj - DEVELOPMENT=true volumes: - /etc/localtime:/etc/localtime:ro depends_on: - storage - cache - db ports: - "8000:8000" runner: image: quay.io/ldcraft/woj-runner:1.3.1-dev restart: unless-stopped command: runner # moby/moby#42040, enable privileged option to make cgroup2 mount as rw privileged: true cap_add: - SYS_ADMIN environment: - REDIS_ADDRESS=cache - STORAGE_ENDPOINT=storage:9000 - STORAGE_ACCESS_KEY=access_key - STORAGE_SECRET_KEY=secret_key - STORAGE_BUCKET=woj - DEVELOPMENT=true volumes: - runner:/app/resource/runner/user - /etc/localtime:/etc/localtime:ro depends_on: - storage - cache - db storage: image: quay.io/minio/minio:latest restart: unless-stopped entrypoint: sh command: -c 'mkdir -p /data/woj && minio server /data' environment: MINIO_ROOT_USER: "access_key" MINIO_ROOT_PASSWORD: "secret_key" ports: - "9000:9000" volumes: - storage:/data cache: image: docker.io/library/redis:alpine restart: unless-stopped healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s ports: - "6379:6379" volumes: - cache:/data db: image: docker.io/library/postgres:16-alpine restart: unless-stopped healthcheck: test: [ "CMD", "pg_isready", "-U", "dev" ] interval: 5s environment: - POSTGRES_USER=dev - POSTGRES_PASSWORD=password - POSTGRES_DB=dev ports: - "5432:5432" volumes: - db:/var/lib/postgresql/data volumes: runner: container: storage: cache: db: