Настроить сборку и публикацию образов в 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
|
# Сборка контейнера с 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
|
||||||
|
|||||||
29
Makefile
29
Makefile
@@ -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"
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Работа с ролью
|
# Работа с ролью
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
Или ввести команду:
|
Или ввести команду:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user