diff --git a/Dockerfile-Ubuntu b/Dockerfile-Ubuntu index 7c3ed80..71b220b 100644 --- a/Dockerfile-Ubuntu +++ b/Dockerfile-Ubuntu @@ -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 diff --git a/Makefile b/Makefile index 7d96b56..7409d48 100644 --- a/Makefile +++ b/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" + #################################################################################################### # Работа с ролью #################################################################################################### diff --git a/README.md b/README.md index 4c967db..3e86c37 100644 --- a/README.md +++ b/README.md @@ -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) Или ввести команду: