Прод-деплой через Gitea-реестр: arm64-образы собираются на ПК, Pi делает pull
- docker-compose.yml: image у app и tunnel → путь реестра ${IMAGE_REGISTRY}/...:${IMAGE_TAG}
(build: оставлен фолбэком для сборки на Pi). Тома/настройки прежние.
- scripts/build-push.sh: buildx bake под linux/arm64 + push обоих образов в реестр (запуск на ПК).
- .env.example: блок ОБРАЗЫ ПРОДА (IMAGE_REGISTRY=gitea.arseniev.info/notbigghost, IMAGE_TAG=latest).
- deploy/pi/README: запуск/обновление через docker compose pull; альтернатива — сборка на Pi;
заметка про HTTPS-реестр / insecure-registries.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+21
-6
@@ -32,18 +32,33 @@ VPS_TUNNEL_USER=tunnel
|
||||
`VPS_TUNNEL_PORT` задавать не нужно — прод-контейнер по умолчанию берёт слот **9000**.
|
||||
Ресурсы (`APP_MEM_LIMIT`/`APP_CPUS`) и оффсайт-бэкап (`BACKUP_*`) — по желанию.
|
||||
|
||||
## 3. Запуск
|
||||
## 3. Запуск (образ из реестра)
|
||||
Образы (`app` + `tunnel`) собираются под arm64 на ПК и пушатся в Gitea-реестр, Pi их тянет
|
||||
(см. `IMAGE_REGISTRY`/`IMAGE_TAG` в `.env`). Pi 4/5 — мощный, но реестр держим как основной путь.
|
||||
|
||||
На ПК (Docker Desktop) — один раз `docker login gitea.arseniev.info`, далее при каждом релизе:
|
||||
```bash
|
||||
docker compose up -d --build # поднимет app + tunnel
|
||||
docker compose ps # оба up; tunnel стартует после healthy app
|
||||
docker compose logs -f tunnel # ждём строку: [tunnel] -R 9000:app:8000 -> tunnel@...
|
||||
scripts/build-push.sh # buildx: arm64-сборка app+tunnel и push в реестр
|
||||
```
|
||||
На Pi:
|
||||
```bash
|
||||
docker login gitea.arseniev.info # один раз (доступ к пакету)
|
||||
git pull # нужны docker-compose.yml, .env, deploy/tunnel/id_tunnel
|
||||
docker compose pull # тянет свежие образы из реестра
|
||||
docker compose up -d
|
||||
docker compose ps # app healthy → поднимется tunnel
|
||||
docker compose logs -f tunnel # ждём: [tunnel] -R 9000:app:8000 -> tunnel@...
|
||||
```
|
||||
Открой `https://forbiddenstars.ru` — должен отдать прод.
|
||||
|
||||
> Альтернатива без реестра (Pi 4/5 ≥4ГБ потянет сборку): `docker compose up -d --build` прямо на Pi.
|
||||
> Реестр Gitea должен быть по HTTPS с валидным сертификатом; иначе на Pi добавь его в
|
||||
> `/etc/docker/daemon.json` → `insecure-registries`.
|
||||
|
||||
## Обновление
|
||||
```bash
|
||||
git pull
|
||||
docker compose up -d --build
|
||||
# ПК: scripts/build-push.sh
|
||||
# Pi: git pull && docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
## Бэкап (полный + оффсайт на VPS)
|
||||
|
||||
Reference in New Issue
Block a user