Настроить сборку и публикацию образов в Docker Hub

- Добавлена новая команда make images-dockerhub для сборки образов в Docker Hub
- Образы публикуются под именем inecs/ansible:centos-latest и inecs/ansible:ubuntu-latest
- Обновлен Dockerfile-Ubuntu для использования готового образа с Ansible
- Добавлена поддержка multi-arch сборки (AMD64/ARM64)
- Обновлена документация в README.md

Автор: Сергей Антропов
This commit is contained in:
2025-10-20 23:53:19 +03:00
parent 00bf1628ef
commit cb0a4d95fd
3 changed files with 32 additions and 12 deletions

View File

@@ -1,13 +1,11 @@
# Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule # Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule
# Используем официальный образ Ubuntu 20.04 # Используем готовый образ с Ansible
FROM geerlingguy/docker-ubuntu2004-ansible:latest FROM geerlingguy/docker-ubuntu2204-ansible:latest
# Обновляем пакеты и устанавливаем systemd # Устанавливаем переменные окружения
RUN apt-get update && \ ENV DEBIAN_FRONTEND=noninteractive
apt-get install -y systemd systemd-sysv rsync && \ ENV container=docker
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Указываем, что контейнер использует systemd в качестве init-системы # Указываем, что контейнер использует systemd в качестве init-системы
ENV container=docker ENV container=docker

View File

@@ -2,6 +2,7 @@
IMAGE ?= ansible IMAGE ?= ansible
TAG ?= 0.1 TAG ?= 0.1
REGISTRY ?= hub.cism-ms.ru/ansible REGISTRY ?= hub.cism-ms.ru/ansible
DOCKER_HUB_REGISTRY ?= inecs/ansible
# По умолчанию используем docker. Для локальной разработки используйте docker-compose # По умолчанию используем docker. Для локальной разработки используйте docker-compose
RUN_MODE ?= docker RUN_MODE ?= docker
@@ -22,7 +23,7 @@ else
$(error Invalid RUN_MODE. Use "docker-compose" or "docker") $(error Invalid RUN_MODE. Use "docker-compose" or "docker")
endif endif
view create edit show delete test lint deploy new init build rebuild prune release images push pull shell: view create edit show delete test lint deploy new init build rebuild prune release images images-dockerhub push pull shell:
@true @true
#################################################################################################### ####################################################################################################
@@ -73,12 +74,32 @@ docker:
docker buildx build -t $(REGISTRY)/$(IMAGE):$(TAG) -t $(REGISTRY)/$(IMAGE):latest --platform linux/amd64,linux/arm64 --push .;; \ docker buildx build -t $(REGISTRY)/$(IMAGE):$(TAG) -t $(REGISTRY)/$(IMAGE):latest --platform linux/amd64,linux/arm64 --push .;; \
images) \ images) \
docker buildx create --use --name multiarch-builder --driver docker-container; \ docker buildx create --use --name multiarch-builder --driver docker-container; \
docker login $(REGISTRY); \ echo "Логинимся в Docker Hub..."; \
docker buildx build -t $(REGISTRY)/centos:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-CentOS .; \ docker login; \
docker buildx build -t $(REGISTRY)/ubuntu:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-Ubuntu .;; \ echo "Собираем и пушим образ CentOS..."; \
docker buildx build -t $(DOCKER_HUB_REGISTRY):centos-latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-CentOS .; \
echo "Собираем и пушим образ Ubuntu..."; \
docker buildx build -t $(DOCKER_HUB_REGISTRY):ubuntu-latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-Ubuntu .; \
echo "Образы успешно опубликованы в Docker Hub: $(DOCKER_HUB_REGISTRY)";; \
*) echo "Unknown action. Available actions: build, rebuild, prune, release";; \ *) echo "Unknown action. Available actions: build, rebuild, prune, release";; \
esac esac
####################################################################################################
# Сборка образов для Docker Hub
####################################################################################################
images-dockerhub:
@echo "Создаем multiarch builder для Docker Hub..."
@docker buildx create --use --name dockerhub-builder --driver docker-container || true
@echo "Логинимся в Docker Hub..."
@docker login
@echo "Собираем и пушим образ CentOS в Docker Hub..."
@docker buildx build -t $(DOCKER_HUB_REGISTRY):centos-latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-CentOS .
@echo "Собираем и пушим образ Ubuntu в Docker Hub..."
@docker buildx build -t $(DOCKER_HUB_REGISTRY):ubuntu-latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-Ubuntu .
@echo "✅ Образы успешно опубликованы в Docker Hub:"
@echo " - $(DOCKER_HUB_REGISTRY):centos-latest"
@echo " - $(DOCKER_HUB_REGISTRY):ubuntu-latest"
#################################################################################################### ####################################################################################################
# Работа с ролью # Работа с ролью
#################################################################################################### ####################################################################################################

View File

@@ -13,7 +13,8 @@
- **make docker prune** - очистить систему от лишних образов - **make docker prune** - очистить систему от лишних образов
- **make docker shell** - войти в контейнер Shell - **make docker shell** - войти в контейнер Shell
- **make docker release** - собирает образ контейнера и пушит его в докер реджистри - **make docker release** - собирает образ контейнера и пушит его в докер реджистри
- **make docker images** - собрать образы контейнеров с systemd, для удобного тестирования ролей. - **make docker images** - собрать образы контейнеров с systemd, для удобного тестирования ролей
- **make images-dockerhub** - собрать и запушить образы CentOS и Ubuntu в Docker Hub (inecs/ansible)
Или ввести команду: Или ввести команду: