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

@@ -6,9 +6,11 @@
| Команда | Описание | Пример |
|---------|----------|--------|
| `make docker build` | Собрать Docker-образ | `make docker build IMAGE=myapp TAG=v1.0` |
| `make docker build` | Собрать Docker-образ (двойные теги) | `make docker build IMAGE=myapp TAG1=latest TAG2=v1.0` |
| `make docker check` | Проверить образ | `make docker check RUN_CMD="java -version"` |
| `make docker push` | Собрать + проверить + отправить | `make docker push IMAGE=myapp TAG=v1.0` |
| `make docker push` | Собрать + проверить + отправить (оба тега) | `make docker push IMAGE=myapp TAG1=latest TAG2=v1.0` |
| `make docker rebuild` | Пересобрать без кэша (оба тега) | `make docker rebuild IMAGE=myapp TAG1=latest TAG2=v1.0` |
| `make docker pull` | Скачать/обновить образы по тегам | `make docker pull IMAGE=myapp TAG1=latest TAG2=v1.0` |
| `make docker save` | Сохранить образ в архив | `make docker save SRC_IMAGE=myapp:latest` |
| `make docker load` | Загрузить из архива | `make docker load ARCHIVE=images/myapp.tar` |
| `make docker login` | Авторизация в registry | `make docker login REGISTRY=hub.cism-ms.ru` |
@@ -50,15 +52,14 @@ IMAGE=web-frontend
IMAGE=api-backend
```
#### TAG
**Описание:** Тег образа
**По умолчанию:** `latest`
#### TAG1 / TAG2
**Описание:** Основной и дополнительный тег образа (двойное тегирование)
**По умолчанию:** `TAG1=latest`, `TAG2=v.0.0.1`
**Примеры:**
```bash
TAG=latest
TAG=v1.0.0
TAG=dev
TAG=2024.01.15
TAG1=latest TAG2=v1.0.0
TAG1=stable TAG2=v1.0.1
TAG1=dev # без второго тега
```
#### CONTEXT
@@ -344,13 +345,16 @@ GIT_MSG="Обновлены зависимости"
### Служебные переменные
#### FULL_IMAGE
**Описание:** Полное имя образа REGISTRY/IMAGE:TAG
**Формируется автоматически:** `$(REGISTRY)/$(IMAGE):$(TAG)`
#### FULL_IMAGE / FULL_IMAGE_1 / FULL_IMAGE_2
**Описание:** Полные имена образов
**Формируется автоматически:**
- `FULL_IMAGE` = `$(REGISTRY)/$(IMAGE):$(TAG1)`
- `FULL_IMAGE_1` = `$(REGISTRY)/$(IMAGE):$(TAG1)`
- `FULL_IMAGE_2` = `$(REGISTRY)/$(IMAGE):$(TAG2)`
**Примеры:**
```bash
FULL_IMAGE=hub.cism-ms.ru/library/myapp:latest
FULL_IMAGE=registry.local/myapp:v1.0.0
FULL_IMAGE_1=hub.cism-ms.ru/library/myapp:latest
FULL_IMAGE_2=hub.cism-ms.ru/library/myapp:v1.0.0
```
#### Цвета вывода