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:
@@ -4,32 +4,32 @@
|
||||
|
||||
### Семантическое версионирование
|
||||
```bash
|
||||
# Основные версии
|
||||
TAG=v1.0.0 # Стабильная версия
|
||||
TAG=v1.1.0 # Новая функциональность
|
||||
TAG=v1.1.1 # Исправления ошибок
|
||||
# Основной и дополнительный тег (двойное тегирование)
|
||||
TAG1=latest TAG2=v1.0.0 # Рекомендуемый минимум: стабильный alias + версия
|
||||
TAG1=stable TAG2=v1.1.0 # Пример для стабильной ветки
|
||||
TAG1=dev # Разработка без второго тега
|
||||
|
||||
# Предварительные версии
|
||||
TAG=v1.2.0-alpha.1
|
||||
TAG=v1.2.0-beta.1
|
||||
TAG=v1.2.0-rc.1
|
||||
# Предрелизные версии
|
||||
TAG1=rc TAG2=v1.2.0-rc.1
|
||||
TAG1=beta TAG2=v1.2.0-beta.1
|
||||
TAG1=alpha TAG2=v1.2.0-alpha.1
|
||||
|
||||
# Специальные теги
|
||||
TAG=latest # Последняя стабильная
|
||||
TAG=dev # Разработка
|
||||
TAG=stable # Стабильная ветка
|
||||
# Специальные алиасы
|
||||
TAG1=latest
|
||||
TAG1=stable
|
||||
TAG1=dev
|
||||
```
|
||||
|
||||
### Автоматическое версионирование
|
||||
```bash
|
||||
# Использование Git commit hash
|
||||
TAG=$(git rev-parse --short HEAD)
|
||||
TAG1=$(git rev-parse --short HEAD)
|
||||
|
||||
# Использование даты
|
||||
TAG=$(date +%Y%m%d-%H%M%S)
|
||||
TAG1=$(date +%Y%m%d-%H%M%S)
|
||||
|
||||
# Использование Git тегов
|
||||
TAG=$(git describe --tags --always)
|
||||
TAG1=$(git describe --tags --always)
|
||||
```
|
||||
|
||||
## 2. Безопасность
|
||||
@@ -92,7 +92,7 @@ coverage
|
||||
# Создание логов с метаданными
|
||||
make docker build \
|
||||
IMAGE=myapp \
|
||||
TAG=v1.0.0 \
|
||||
TAG1=v1.0.0 \
|
||||
BUILD_ARGS="--build-arg BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
||||
LOG_DIR=./build-logs
|
||||
```
|
||||
@@ -116,21 +116,21 @@ docker run --rm -it \
|
||||
### Кэширование слоев Docker
|
||||
```bash
|
||||
# Сборка с использованием кэша
|
||||
make docker build IMAGE=myapp TAG=v1.0.0
|
||||
make docker build IMAGE=myapp TAG1=v1.0.0
|
||||
|
||||
# Сборка без кэша (для чистых сборок)
|
||||
make docker build IMAGE=myapp TAG=v1.0.0 NO_CACHE=1
|
||||
make docker rebuild IMAGE=myapp TAG1=v1.0.0
|
||||
|
||||
# Принудительное обновление базовых образов
|
||||
make docker build IMAGE=myapp TAG=v1.0.0 PULL=1
|
||||
make docker build IMAGE=myapp TAG1=v1.0.0 PULL=1
|
||||
```
|
||||
|
||||
### Параллельная сборка
|
||||
```bash
|
||||
# Сборка нескольких образов параллельно
|
||||
make docker build IMAGE=frontend TAG=v1.0.0 &
|
||||
make docker build IMAGE=backend TAG=v1.0.0 &
|
||||
make docker build IMAGE=worker TAG=v1.0.0 &
|
||||
make docker build IMAGE=frontend TAG1=v1.0.0 &
|
||||
make docker build IMAGE=backend TAG1=v1.0.0 &
|
||||
make docker build IMAGE=worker TAG1=v1.0.0 &
|
||||
wait
|
||||
|
||||
# Проверка результатов
|
||||
@@ -142,7 +142,7 @@ docker images | grep -E "(frontend|backend|worker)"
|
||||
# Сборка с минимальным размером
|
||||
make docker build \
|
||||
IMAGE=myapp \
|
||||
TAG=minimal \
|
||||
TAG1=minimal \
|
||||
BUILD_ARGS="--build-arg BUILDKIT_INLINE_CACHE=1"
|
||||
|
||||
# Сжатие образов
|
||||
@@ -158,13 +158,13 @@ make docker save \
|
||||
# Сборка базового образа
|
||||
make docker build \
|
||||
IMAGE=base-image \
|
||||
TAG=ubuntu-22.04 \
|
||||
TAG1=ubuntu-22.04 \
|
||||
DOCKERFILE=Dockerfile.base
|
||||
|
||||
# Использование базового образа
|
||||
make docker build \
|
||||
IMAGE=myapp \
|
||||
TAG=v1.0.0 \
|
||||
TAG1=v1.0.0 \
|
||||
BUILD_ARGS="--build-arg BASE_IMAGE=base-image:ubuntu-22.04"
|
||||
```
|
||||
|
||||
@@ -173,7 +173,7 @@ make docker build \
|
||||
# Обновление базовых образов
|
||||
make docker build \
|
||||
IMAGE=myapp \
|
||||
TAG=v1.0.0 \
|
||||
TAG1=v1.0.0 \
|
||||
PULL=1
|
||||
|
||||
# Проверка обновлений
|
||||
@@ -211,10 +211,10 @@ docker run -it --rm \
|
||||
### Измерение времени сборки
|
||||
```bash
|
||||
# Время сборки
|
||||
time make docker build IMAGE=myapp TAG=v1.0.0
|
||||
time make docker build IMAGE=myapp TAG1=v1.0.0
|
||||
|
||||
# Детальная статистика
|
||||
make docker build IMAGE=myapp TAG=v1.0.0 2>&1 | tee build.log
|
||||
make docker build IMAGE=myapp TAG1=v1.0.0 2>&1 | tee build.log
|
||||
```
|
||||
|
||||
### Мониторинг ресурсов
|
||||
@@ -253,7 +253,7 @@ project/
|
||||
cat > Makefile.local << EOF
|
||||
REGISTRY=my-registry.com
|
||||
IMAGE=my-project
|
||||
TAG=dev
|
||||
TAG1=dev
|
||||
NO_CACHE=0
|
||||
QUIET=0
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user