ci: move deploy pipeline to registry images
This commit is contained in:
+22
-7
@@ -199,22 +199,37 @@ CI должен выполнять:
|
||||
CD для MVP должен:
|
||||
|
||||
- запускаться только после успешного `CI` на `main` или вручную;
|
||||
- собирать production artifacts;
|
||||
- собирать versioned container images;
|
||||
- пушить их в container registry с cache;
|
||||
- доставлять deployment files на целевой Linux host;
|
||||
- выполнять controlled restart;
|
||||
- выполнять controlled restart через `pull`, без сборки на сервере;
|
||||
- проверять health endpoints после запуска.
|
||||
|
||||
Минимальный flow:
|
||||
|
||||
1. push в `main`
|
||||
2. успешный `CI`
|
||||
3. build images или удаленная сборка на хосте
|
||||
3. build and push images в registry
|
||||
4. upload env и deployment files
|
||||
5. `docker compose config -q`
|
||||
6. `docker compose up -d`
|
||||
7. healthcheck verification для `ui`, `admin-api`, `mcp-server`
|
||||
5. `docker login` на registry на целевом хосте
|
||||
6. `docker compose config -q`
|
||||
7. `docker compose pull`
|
||||
8. `docker compose up -d`
|
||||
9. healthcheck verification для `ui`, `admin-api`, `mcp-server`
|
||||
|
||||
Для MVP допустим deployment с удаленной сборкой на целевом Linux host через `ssh + rsync + docker compose up -d --build`, если не используется отдельный container registry.
|
||||
Для текущего проекта базовая рекомендуемая схема:
|
||||
|
||||
- `GHCR` как registry;
|
||||
- versioned tags по `git sha`;
|
||||
- `docker/buildx` cache в GitHub Actions;
|
||||
- на сервере только `pull + restart`, без `docker compose up --build`.
|
||||
|
||||
Для private registry на сервере нужны отдельные deployment secrets:
|
||||
|
||||
- `DEPLOY_REGISTRY_USER`
|
||||
- `DEPLOY_REGISTRY_TOKEN`
|
||||
|
||||
Они используются только для `docker login` на целевом Linux host перед `docker compose pull`.
|
||||
|
||||
## 12. Что нельзя забыть
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@ var/crank/
|
||||
Минимально ожидаются:
|
||||
|
||||
- `CRANK_DATABASE_URL`
|
||||
- `CRANK_ADMIN_API_IMAGE`
|
||||
- `CRANK_MCP_SERVER_IMAGE`
|
||||
- `CRANK_UI_IMAGE`
|
||||
- `CRANK_STORAGE_ROOT`
|
||||
- `CRANK_ADMIN_BIND`
|
||||
- `CRANK_MCP_BIND`
|
||||
@@ -116,6 +119,7 @@ Demo/deployment:
|
||||
- включенная app-level auth-защита admin-api;
|
||||
- стабильный `Streamable HTTP` endpoint для MCP.
|
||||
- containerized runtime через `Docker` и `docker-compose`.
|
||||
- registry-backed image rollout через `GHCR` или совместимый registry.
|
||||
|
||||
### Auth env
|
||||
|
||||
|
||||
Reference in New Issue
Block a user