From 827d69231c21c4044c4b7ba549a9e007b1d28a11 Mon Sep 17 00:00:00 2001 From: 3252a8 <3252a8@proton.me> Date: Tue, 26 May 2026 08:57:15 +0300 Subject: [PATCH] feat: add Docker Hub image script --- docs/deployment.md | 24 ++++++++++++++++++++++++ scripts/dockerhub-build-push-images.ps1 | 13 +++++++++++++ scripts/dockerhub-build-push-images.sh | 12 ++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 scripts/dockerhub-build-push-images.ps1 create mode 100644 scripts/dockerhub-build-push-images.sh diff --git a/docs/deployment.md b/docs/deployment.md index 574437f..853a8f9 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -149,6 +149,30 @@ IMAGE_TAG=3.2.0 scripts/docker-push-images.sh `scripts/docker-push-images.ps1`. Если публикуете образы в другой registry, namespace или с другим префиксом имени, переопределите `IMAGE_NAMESPACE`, `IMAGE_REGISTRY` или `IMAGE_PREFIX`. +Для Docker Hub аккаунта `3252a8` есть отдельный скрипт, который сразу собирает и публикует все три +образа: + +```bash +docker login +IMAGE_TAG=3.2.0 bash scripts/dockerhub-build-push-images.sh +``` + +PowerShell-вариант: + +```powershell +$env:IMAGE_TAG = "3.2.0" +docker login +powershell -ExecutionPolicy Bypass -File .\scripts\dockerhub-build-push-images.ps1 +``` + +По умолчанию он публикует: + +```text +docker.io/3252a8/remnawave-minishop-backend: +docker.io/3252a8/remnawave-minishop-worker: +docker.io/3252a8/remnawave-minishop-frontend: +``` + Если PowerShell блокирует локальные скрипты ошибкой `PSSecurityException` / Execution Policy, запустите те же скрипты с обходом политики только для текущего процесса: diff --git a/scripts/dockerhub-build-push-images.ps1 b/scripts/dockerhub-build-push-images.ps1 new file mode 100644 index 0000000..c81760d --- /dev/null +++ b/scripts/dockerhub-build-push-images.ps1 @@ -0,0 +1,13 @@ +$ErrorActionPreference = "Stop" + +if (-not $env:IMAGE_TAG) { + throw "Set IMAGE_TAG to the release tag you want to build and push" +} + +$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path + +$env:IMAGE_REGISTRY = "docker.io" +$env:IMAGE_NAMESPACE = "3252a8" + +& (Join-Path $scriptDir "docker-build-images.ps1") +& (Join-Path $scriptDir "docker-push-images.ps1") diff --git a/scripts/dockerhub-build-push-images.sh b/scripts/dockerhub-build-push-images.sh new file mode 100644 index 0000000..530fd81 --- /dev/null +++ b/scripts/dockerhub-build-push-images.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +IMAGE_REGISTRY="docker.io" +IMAGE_NAMESPACE="3252a8" +IMAGE_TAG="${IMAGE_TAG:?Set IMAGE_TAG to the release tag you want to build and push}" +export IMAGE_REGISTRY IMAGE_NAMESPACE IMAGE_TAG + +bash "$SCRIPT_DIR/docker-build-images.sh" +bash "$SCRIPT_DIR/docker-push-images.sh"