chore: add image publish and mirror sync scripts

This commit is contained in:
3252a8
2026-05-26 22:30:10 +03:00
parent 53f1cec401
commit c3381bdd31
7 changed files with 394 additions and 19 deletions
+32
View File
@@ -24,4 +24,36 @@ docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" -d "$POSTGRES
- вход в Mini App и админку
- тестовый платеж или тестовая активация
## Синхронизация GitLab-зеркала
Основное место работы - GitHub remote `origin`. GitLab remote `gitlab` используется как запасное зеркало.
После пуша в GitHub синхронизируйте зеркало:
```bash
bash scripts/sync-gitlab-mirror.sh
```
PowerShell-вариант:
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\sync-gitlab-mirror.ps1
```
По умолчанию скрипт делает `git fetch origin --prune --tags`, пушит все ветки из `origin/*` в `gitlab` и пушит теги. Он не удаляет ветки в GitLab и не делает force-push. Для строгого зеркалирования доступны флаги:
```bash
bash scripts/sync-gitlab-mirror.sh --force --prune
```
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\sync-gitlab-mirror.ps1 -Force -Prune
```
Перед опасными режимами можно посмотреть команды без выполнения:
```bash
bash scripts/sync-gitlab-mirror.sh --force --prune --dry-run
```
Подробности: [развертывание](../deployment.md) и [логи](../troubleshooting/logs.md).
+39 -18
View File
@@ -231,7 +231,7 @@ docker compose build frontend backend worker
docker compose up -d
```
## Образы GHCR
## Образы GHCR и Docker Hub
Образы приложения называются единообразно:
@@ -239,53 +239,74 @@ docker compose up -d
ghcr.io/3252a8/remnawave-minishop-backend:<tag>
ghcr.io/3252a8/remnawave-minishop-worker:<tag>
ghcr.io/3252a8/remnawave-minishop-frontend:<tag>
docker.io/3252a8/remnawave-minishop-backend:<tag>
docker.io/3252a8/remnawave-minishop-worker:<tag>
docker.io/3252a8/remnawave-minishop-frontend:<tag>
```
Сборка образов с конкретным тегом:
Чтобы собрать и сразу опубликовать все три образа в GHCR и Docker Hub, сначала выполните логин в оба registry:
```bash
IMAGE_TAG=3.2.0 scripts/docker-build-images.sh
docker login ghcr.io
docker login docker.io
IMAGE_TAG=v3.4.3 bash scripts/docker-build-push-images.sh
```
Публикация после `docker login ghcr.io`:
PowerShell-вариант:
```powershell
$env:IMAGE_TAG = "v3.4.3"
docker login ghcr.io
docker login docker.io
powershell -ExecutionPolicy Bypass -File .\scripts\docker-build-push-images.ps1
```
По умолчанию скрипты используют:
- `IMAGE_REGISTRIES=ghcr.io docker.io`
- `IMAGE_NAMESPACE=3252a8`
- `IMAGE_PREFIX=remnawave-minishop`
- `TARGETS=backend worker frontend`
- `DOCKERFILE=deploy/docker/Dockerfile`
Если нужен только один registry или другой namespace, переопределите переменные:
```bash
IMAGE_TAG=3.2.0 scripts/docker-push-images.sh
IMAGE_REGISTRIES=ghcr.io IMAGE_TAG=v3.4.3 bash scripts/docker-build-push-images.sh
IMAGE_REGISTRIES="ghcr.io docker.io" IMAGE_NAMESPACE=other IMAGE_TAG=v3.4.3 bash scripts/docker-build-push-images.sh
```
Старые раздельные команды тоже остаются:
```bash
IMAGE_TAG=v3.4.3 scripts/docker-build-images.sh
IMAGE_TAG=v3.4.3 scripts/docker-push-images.sh
```
Для PowerShell есть варианты `scripts/docker-build-images.ps1` и
`scripts/docker-push-images.ps1`. Если публикуете образы в другой registry, namespace или с другим
префиксом имени, переопределите `IMAGE_NAMESPACE`, `IMAGE_REGISTRY` или `IMAGE_PREFIX`.
Для Docker Hub аккаунта `3252a8` есть отдельный скрипт, который сразу собирает и публикует все три
образа:
Для совместимости оставлены Docker Hub-only скрипты:
```bash
docker login
IMAGE_TAG=3.2.0 bash scripts/dockerhub-build-push-images.sh
IMAGE_TAG=v3.4.3 bash scripts/dockerhub-build-push-images.sh
```
PowerShell-вариант:
```powershell
$env:IMAGE_TAG = "3.2.0"
$env:IMAGE_TAG = "v3.4.3"
docker login
powershell -ExecutionPolicy Bypass -File .\scripts\dockerhub-build-push-images.ps1
```
По умолчанию он публикует:
```text
docker.io/3252a8/remnawave-minishop-backend:<tag>
docker.io/3252a8/remnawave-minishop-worker:<tag>
docker.io/3252a8/remnawave-minishop-frontend:<tag>
```
Если PowerShell блокирует локальные скрипты ошибкой `PSSecurityException` / Execution Policy,
запустите те же скрипты с обходом политики только для текущего процесса:
```powershell
$env:IMAGE_TAG = "3.2.0"
$env:IMAGE_TAG = "v3.4.3"
docker login ghcr.io
powershell -ExecutionPolicy Bypass -File .\scripts\docker-build-images.ps1
powershell -ExecutionPolicy Bypass -File .\scripts\docker-push-images.ps1