feat(makefile): add docker pull/rebuild and dual tags (TAG1/TAG2); drop TAG\n\n- build/rebuild now tag with TAG1/TAG2\n- add docker pull (both tags)\n- push handles both tags\n- docs updated (README, docs/*)\n- examples migrated to TAG1/TAG2

This commit is contained in:
Сергей Антропов
2025-10-30 11:21:00 +03:00
parent d9900527f1
commit c583bdbe59
6 changed files with 166 additions and 103 deletions

View File

@@ -4,26 +4,26 @@
### Простая сборка
```bash
# Сборка с минимальными параметрами
make docker build IMAGE=myapp TAG=latest
# Сборка с двойными тегами
make docker build IMAGE=myapp TAG1=latest TAG2=v1.0.0
# Сборка с кастомным registry
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=latest TAG2=v1.0.0 \
REGISTRY=hub.cism-ms.ru/library
# Сборка с проверкой
make docker build IMAGE=myapp TAG=v1.0.0
make docker build IMAGE=myapp TAG1=latest TAG2=v1.0.0
make docker check RUN_CMD="lsb_release -a"
```
### Полный цикл сборки и публикации
```bash
# 1. Сборка образа
# 1. Сборка образа (двойные теги)
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=latest TAG2=v1.0.0 \
REGISTRY=hub.cism-ms.ru/library
# 2. Проверка работоспособности
@@ -33,7 +33,7 @@ make docker check \
# 3. Публикация в registry
make docker push \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=latest TAG2=v1.0.0 \
REGISTRY=hub.cism-ms.ru/library
```
@@ -56,7 +56,7 @@ docker buildx inspect --bootstrap
# Сборка для AMD64 и ARM64
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=latest TAG2=v1.0.0 \
USE_BUILDX=1 \
PLATFORMS="linux/amd64,linux/arm64" \
PUSH=1 \
@@ -65,7 +65,7 @@ make docker build \
# Сборка для всех популярных платформ
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=latest TAG2=v1.0.0 \
USE_BUILDX=1 \
PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7" \
PUSH=1
@@ -106,7 +106,7 @@ make docker load \
ARCHIVE=images/myapp_v1.0.0.tar.gz \
REGISTRY=hub.cism-ms.ru/library \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
LOGIN=1 \
PUSH_OFFLINE=1
@@ -125,13 +125,13 @@ make docker load \
# Передача переменных окружения
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
BUILD_ARGS="--build-arg VERSION=1.0.0 --build-arg NODE_ENV=production"
# Передача пользовательских данных
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
BUILD_ARGS="--build-arg USER_ID=1000 --build-arg GROUP_ID=1000"
```
@@ -279,13 +279,13 @@ make docker check RUN_CMD="env | grep -E 'VERSION|NODE_ENV'"
# Сборка с Dockerfile.prod
make docker build \
IMAGE=myapp \
TAG=production \
TAG1=production \
DOCKERFILE=Dockerfile.prod
# Сборка с контекстом в подпапке
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
CONTEXT=./app
```
@@ -294,31 +294,37 @@ make docker build \
# Сборка для локального registry
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
REGISTRY=localhost:5000
# Сборка для Docker Hub
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
REGISTRY=myusername
# Сборка для GitLab Registry
make docker build \
IMAGE=myapp \
TAG=v1.0.0 \
TAG1=v1.0.0 \
REGISTRY=registry.gitlab.com/myproject
```
### Управление тегами
```bash
# Перетегирование образа
# Перетегирование образа (локально)
make docker retag NEW_TAG=v2.0.0
# Создание нескольких тегов
make docker retag NEW_TAG=latest
make docker retag NEW_TAG=stable
make docker retag NEW_TAG=2024.01.15
# Пулл обоих тегов
make docker pull IMAGE=myapp TAG1=latest TAG2=v2.0.0 REGISTRY=hub.cism-ms.ru/library
# Пересборка без кэша с двумя тегами
make docker rebuild IMAGE=myapp TAG1=latest TAG2=v2.0.0
```
## 9. Очистка и обслуживание