Добавлена команда build-image и исправлены базовые образы
- Добавлена команда 'make docker build-image IMAGE=имя' для сборки отдельных образов - Исправлены базовые образы в docker-get-base-tag: - alt-linux: alt:p9 (было altlinux/p9) - astra-linux: registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2 - Остальные образы соответствуют FROM в Dockerfile - Улучшена логика извлечения тегов из базовых образов - Добавлена валидация существования директории образа - Команда build-image добавлена в список пустых целей Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
59
Makefile
59
Makefile
@@ -465,6 +465,31 @@ docker:
|
|||||||
clean-builder) \
|
clean-builder) \
|
||||||
echo "🧹 Очистка multi-arch builder..."; \
|
echo "🧹 Очистка multi-arch builder..."; \
|
||||||
$(MAKE) docker-reset-builder;; \
|
$(MAKE) docker-reset-builder;; \
|
||||||
|
build-image) \
|
||||||
|
if [ -z "$(IMAGE)" ]; then \
|
||||||
|
echo "❌ Ошибка: Укажите IMAGE=имя_образа"; \
|
||||||
|
echo "💡 Пример: make docker build-image IMAGE=centos"; \
|
||||||
|
echo "💡 Доступные образы: $(DOCKER_IMAGES)"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
if [ ! -d "dockerfiles/$(IMAGE)" ]; then \
|
||||||
|
echo "❌ Ошибка: Директория dockerfiles/$(IMAGE) не найдена!"; \
|
||||||
|
echo "💡 Доступные образы:"; \
|
||||||
|
for img in $(DOCKER_IMAGES); do \
|
||||||
|
if [ -d "dockerfiles/$$img" ]; then \
|
||||||
|
echo " - $$img"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "🔨 Сборка отдельного образа: $(IMAGE)"; \
|
||||||
|
echo "📋 Платформы: $(DOCKER_PLATFORMS)"; \
|
||||||
|
echo "📋 Builder: $(DOCKER_BUILDX_BUILDER)"; \
|
||||||
|
echo "📋 Registry: $(DOCKER_REGISTRY)"; \
|
||||||
|
echo ""; \
|
||||||
|
$(MAKE) docker setup-builder; \
|
||||||
|
$(MAKE) docker-build-image IMAGE=$(IMAGE); \
|
||||||
|
echo "✅ Образ $(IMAGE) собран";; \
|
||||||
setup-builder) \
|
setup-builder) \
|
||||||
echo "🔧 Настройка multi-arch builder в контейнере..."; \
|
echo "🔧 Настройка multi-arch builder в контейнере..."; \
|
||||||
if $(MAKE) docker-check-builder >/dev/null 2>&1; then \
|
if $(MAKE) docker-check-builder >/dev/null 2>&1; then \
|
||||||
@@ -701,26 +726,40 @@ docker-get-base-tag:
|
|||||||
fi; \
|
fi; \
|
||||||
case "$(IMAGE)" in \
|
case "$(IMAGE)" in \
|
||||||
alt-linux) \
|
alt-linux) \
|
||||||
BASE_IMAGE="altlinux/p9"; \
|
BASE_IMAGE="alt:p9"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
astra-linux) \
|
astra-linux) \
|
||||||
BASE_IMAGE="astralinux/astra-1.7"; \
|
BASE_IMAGE="registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
redos) \
|
redos) \
|
||||||
BASE_IMAGE="redos/redos:9"; \
|
BASE_IMAGE="redos/redos:9"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
rhel) \
|
rhel) \
|
||||||
BASE_IMAGE="registry.access.redhat.com/ubi8/ubi"; \
|
BASE_IMAGE="registry.access.redhat.com/ubi8/ubi"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
centos) \
|
centos) \
|
||||||
BASE_IMAGE="quay.io/centos/centos:stream9"; \
|
BASE_IMAGE="quay.io/centos/centos:stream9"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
alma) \
|
alma) \
|
||||||
BASE_IMAGE="almalinux:8"; \
|
BASE_IMAGE="almalinux:8"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
rocky) \
|
rocky) \
|
||||||
BASE_IMAGE="rockylinux:8"; \
|
BASE_IMAGE="rockylinux:8"; \
|
||||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
|
||||||
|
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
|
||||||
|
TAG=$$(docker inspect --format='{{.RepoTags}}' $$BASE_IMAGE 2>/dev/null | tr -d '[]' | cut -d',' -f1 | cut -d':' -f2 | tr -d ' ' || echo "latest");; \
|
||||||
ansible-controller) \
|
ansible-controller) \
|
||||||
TAG="latest";; \
|
TAG="latest";; \
|
||||||
*) \
|
*) \
|
||||||
@@ -883,5 +922,5 @@ help:
|
|||||||
@echo "=========================================="
|
@echo "=========================================="
|
||||||
|
|
||||||
# Пустые цели для совместимости
|
# Пустые цели для совместимости
|
||||||
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge clean-builder setup-builder diagnose reset-builder:
|
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge clean-builder setup-builder diagnose reset-builder build-image:
|
||||||
@true
|
@true
|
||||||
|
|||||||
Reference in New Issue
Block a user