docs: describe offline docker release workflow for enterprise clean
This commit is contained in:
45
README.md
45
README.md
@@ -233,6 +233,50 @@ cd /home/busya/dev/ss-tools
|
||||
|
||||
Если найден внешний endpoint, выпуск получает статус `BLOCKED` до исправления.
|
||||
|
||||
### Docker release для изолированного контура
|
||||
|
||||
Текущий `enterprise clean` профиль уже задаёт policy-level ограничения для внутреннего контура. Следующий логичный шаг для релизного процесса — выпускать не только application artifacts, но и готовый Docker bundle для разворота без доступа в интернет.
|
||||
|
||||
Целевой состав offline release-пакета:
|
||||
- `backend` image с уже установленными Python-зависимостями;
|
||||
- `frontend` image с уже собранным SvelteKit bundle;
|
||||
- `postgres` image или внутренний pinned base image;
|
||||
- `docker-compose.enterprise-clean.yml` для запуска в air-gapped окружении;
|
||||
- `.env.enterprise-clean.example` с обязательными переменными;
|
||||
- manifest с версиями, sha256 и перечнем образов;
|
||||
- инструкции по `docker load` / `docker compose up` без обращения к внешним registry.
|
||||
|
||||
Рекомендуемый workflow для такого релиза:
|
||||
|
||||
```bash
|
||||
# 1. Собрать образы в подключённом контуре
|
||||
docker compose -f docker-compose.yml build
|
||||
|
||||
# 2. Экспортировать их в tar-архивы
|
||||
docker save ss-tools-backend:TAG -o dist/docker/backend.TAG.tar
|
||||
docker save ss-tools-frontend:TAG -o dist/docker/frontend.TAG.tar
|
||||
|
||||
# 3. Передать bundle в изолированный контур
|
||||
# 4. Импортировать образы локально
|
||||
docker load -i dist/docker/backend.TAG.tar
|
||||
docker load -i dist/docker/frontend.TAG.tar
|
||||
|
||||
# 5. Запустить только локальные образы
|
||||
docker compose -f docker-compose.enterprise-clean.yml up -d
|
||||
```
|
||||
|
||||
Ограничения для production-grade offline release:
|
||||
- build не должен тянуть зависимости в изолированном контуре;
|
||||
- все base images должны быть заранее зеркалированы во внутренний registry или поставляться как tar;
|
||||
- runtime-конфигурация не должна ссылаться на внешние API/registry/telemetry endpoints;
|
||||
- clean/compliance manifest должен включать docker image digests как часть evidence package.
|
||||
|
||||
Практический план внедрения:
|
||||
- добавить pinned Docker image tags и отдельный `enterprise-clean` compose profile;
|
||||
- подготовить `make release-docker-bundle` или shell script для `build -> save -> checksum`;
|
||||
- включить docker image digests в clean-release manifest;
|
||||
- добавить smoke-check, что compose-файлы не содержат внешних registry references вне allowlist.
|
||||
|
||||
## 📖 Документация
|
||||
|
||||
- [Установка и настройка](docs/installation.md)
|
||||
@@ -328,4 +372,3 @@ cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user