Настроить сборку и публикацию образов в 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:
@@ -1,13 +1,11 @@
|
||||
# Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule
|
||||
|
||||
# Используем официальный образ Ubuntu 20.04
|
||||
FROM geerlingguy/docker-ubuntu2004-ansible:latest
|
||||
# Используем готовый образ с Ansible
|
||||
FROM geerlingguy/docker-ubuntu2204-ansible:latest
|
||||
|
||||
# Обновляем пакеты и устанавливаем systemd
|
||||
RUN apt-get update && \
|
||||
apt-get install -y systemd systemd-sysv rsync && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Устанавливаем переменные окружения
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV container=docker
|
||||
|
||||
# Указываем, что контейнер использует systemd в качестве init-системы
|
||||
ENV container=docker
|
||||
|
||||
29
Makefile
29
Makefile
@@ -2,6 +2,7 @@
|
||||
IMAGE ?= ansible
|
||||
TAG ?= 0.1
|
||||
REGISTRY ?= hub.cism-ms.ru/ansible
|
||||
DOCKER_HUB_REGISTRY ?= inecs/ansible
|
||||
# По умолчанию используем docker. Для локальной разработки используйте docker-compose
|
||||
RUN_MODE ?= docker
|
||||
|
||||
@@ -22,7 +23,7 @@ else
|
||||
$(error Invalid RUN_MODE. Use "docker-compose" or "docker")
|
||||
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
|
||||
|
||||
####################################################################################################
|
||||
@@ -73,12 +74,32 @@ docker:
|
||||
docker buildx build -t $(REGISTRY)/$(IMAGE):$(TAG) -t $(REGISTRY)/$(IMAGE):latest --platform linux/amd64,linux/arm64 --push .;; \
|
||||
images) \
|
||||
docker buildx create --use --name multiarch-builder --driver docker-container; \
|
||||
docker login $(REGISTRY); \
|
||||
docker buildx build -t $(REGISTRY)/centos:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-CentOS .; \
|
||||
docker buildx build -t $(REGISTRY)/ubuntu:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-Ubuntu .;; \
|
||||
echo "Логинимся в Docker Hub..."; \
|
||||
docker login; \
|
||||
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";; \
|
||||
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"
|
||||
|
||||
####################################################################################################
|
||||
# Работа с ролью
|
||||
####################################################################################################
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
- **make docker prune** - очистить систему от лишних образов
|
||||
- **make docker shell** - войти в контейнер Shell
|
||||
- **make docker release** - собирает образ контейнера и пушит его в докер реджистри
|
||||
- **make docker images** - собрать образы контейнеров с systemd, для удобного тестирования ролей.
|
||||
- **make docker images** - собрать образы контейнеров с systemd, для удобного тестирования ролей
|
||||
- **make images-dockerhub** - собрать и запушить образы CentOS и Ubuntu в Docker Hub (inecs/ansible)
|
||||
|
||||
Или ввести команду:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user