Добавлена команда 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) \
|
||||
echo "🧹 Очистка multi-arch 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) \
|
||||
echo "🔧 Настройка multi-arch builder в контейнере..."; \
|
||||
if $(MAKE) docker-check-builder >/dev/null 2>&1; then \
|
||||
@@ -701,26 +726,40 @@ docker-get-base-tag:
|
||||
fi; \
|
||||
case "$(IMAGE)" in \
|
||||
alt-linux) \
|
||||
BASE_IMAGE="altlinux/p9"; \
|
||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
||||
BASE_IMAGE="alt:p9"; \
|
||||
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) \
|
||||
BASE_IMAGE="astralinux/astra-1.7"; \
|
||||
TAG=$$(docker inspect --format='{{index .RepoDigests 0}}' $$BASE_IMAGE 2>/dev/null | cut -d'@' -f1 | cut -d':' -f2 || echo "latest");; \
|
||||
BASE_IMAGE="registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2"; \
|
||||
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) \
|
||||
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) \
|
||||
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) \
|
||||
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) \
|
||||
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) \
|
||||
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) \
|
||||
TAG="latest";; \
|
||||
*) \
|
||||
@@ -883,5 +922,5 @@ help:
|
||||
@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
|
||||
|
||||
Reference in New Issue
Block a user