chore(ci): add offline container deployment pipeline
CI / Backend (push) Failing after 8m3s
CI / Deployment Config (push) Successful in 6s
CI / Frontend (push) Successful in 4m4s

This commit is contained in:
2026-04-30 23:29:15 +08:00
parent f3679e6176
commit 22163edbee
13 changed files with 472 additions and 58 deletions
+36 -8
View File
@@ -11,8 +11,8 @@ name: geo-rankly
x-app-env: &app-env
CONFIG_PATH: /app/configs/config.yaml
LLM_API_KEY: ${LLM_API_KEY}
SILICONFLOW_API_KEY: ${SILICONFLOW_API_KEY}
LLM_API_KEY: ${LLM_API_KEY:-}
SILICONFLOW_API_KEY: ${SILICONFLOW_API_KEY:-}
JWT_SECRET: ${JWT_SECRET:-change-me-in-production}
JWT_ACCESS_TTL: ${JWT_ACCESS_TTL:-15m}
JWT_REFRESH_TTL: ${JWT_REFRESH_TTL:-720h}
@@ -87,7 +87,7 @@ services:
volumes:
- rabbitmq_data:/var/lib/rabbitmq
ports:
- "${RABBITMQ_MGMT_PORT:-15672}:15672"
- "${RABBITMQ_MGMT_PORT:-15673}:15672"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "ping"]
interval: 10s
@@ -120,7 +120,7 @@ services:
volumes:
- minio_data:/data
ports:
- "${MINIO_CONSOLE_PORT:-9001}:9001"
- "${MINIO_CONSOLE_PORT:-19001}:9001"
# ─── MinIO bucket initializer (one-shot) ────────────────────────────────────
minio-init:
@@ -181,9 +181,9 @@ services:
volumes: *app-volumes
depends_on: *app-depends
ports:
- "${API_PORT:-8080}:8080"
- "${API_PORT:-18081}:8080"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/health || exit 1"]
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/health/live || exit 1"]
interval: 10s
timeout: 5s
retries: 5
@@ -204,6 +204,21 @@ services:
volumes: *app-volumes
depends_on: *app-depends
kol-assist-worker:
image: ${IMAGE_REGISTRY:-ghcr.io/your-org/geo-rankly}/kol-assist-worker:${IMAGE_TAG:-latest}
container_name: geo-kol-assist-worker
build:
context: ../server
dockerfile: Dockerfile
target: runtime
args:
SERVICE: kol-assist-worker
restart: unless-stopped
environment:
<<: *app-env
volumes: *app-volumes
depends_on: *app-depends
scheduler:
image: ${IMAGE_REGISTRY:-ghcr.io/your-org/geo-rankly}/scheduler:${IMAGE_TAG:-latest}
container_name: geo-scheduler
@@ -246,7 +261,7 @@ services:
migrate:
condition: service_completed_successfully
ports:
- "${OPS_API_PORT:-8090}:8090"
- "${OPS_API_PORT:-18090}:8090"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8090/api/health/live || exit 1"]
interval: 10s
@@ -267,7 +282,20 @@ services:
tenant-api:
condition: service_healthy
ports:
- "${FRONTEND_PORT:-80}:80"
- "${FRONTEND_PORT:-18080}:80"
ops-web:
image: ${IMAGE_REGISTRY:-ghcr.io/your-org/geo-rankly}/ops-web:${IMAGE_TAG:-latest}
container_name: geo-ops-web
build:
context: ..
dockerfile: Dockerfile.ops-web
restart: unless-stopped
depends_on:
ops-api:
condition: service_healthy
ports:
- "${OPS_WEB_PORT:-18082}:80"
volumes:
pgdata: