Исправить Dockerfile и успешно собрать все образы
- Обновлен Dockerfile для использования готового образа geerlingguy/docker-ubuntu2204-ansible:latest - Исправлена проблема с отсутствующей папкой scripts - Успешно собраны и опубликованы все образы в Docker Hub: - inecs/ansible:latest (основной Ansible образ) - inecs/ansible:centos-latest (для тестирования на CentOS) - inecs/ansible:ubuntu-latest (для тестирования на Ubuntu) - Все образы поддерживают multi-arch (AMD64/ARM64) Автор: Сергей Антропов
This commit is contained in:
60
Dockerfile
60
Dockerfile
@@ -1,5 +1,5 @@
|
|||||||
# Используем более легкий базовый образ
|
# Используем готовый образ с Ansible
|
||||||
FROM python:3.12.9-slim-bullseye
|
FROM geerlingguy/docker-ubuntu2204-ansible:latest
|
||||||
|
|
||||||
# Добавляем метаданные
|
# Добавляем метаданные
|
||||||
LABEL maintainer="Сергей Антропов <sergey@antropoff.ru>"
|
LABEL maintainer="Сергей Антропов <sergey@antropoff.ru>"
|
||||||
@@ -11,50 +11,30 @@ LABEL contact.website="https://devops.org.ru"
|
|||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
ENV EDITOR=nano
|
ENV EDITOR=nano
|
||||||
|
|
||||||
# Устанавливаем системные зависимости
|
# Устанавливаем дополнительные зависимости Python для Molecule
|
||||||
RUN apt-get update --allow-releaseinfo-change && \
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
git \
|
|
||||||
ssh \
|
|
||||||
gcc \
|
|
||||||
libffi-dev \
|
|
||||||
libssl-dev \
|
|
||||||
make \
|
|
||||||
sudo \
|
|
||||||
sshpass \
|
|
||||||
openssh-client \
|
|
||||||
nano \
|
|
||||||
less \
|
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
gnupg \
|
|
||||||
lsb-release \
|
|
||||||
&& mkdir -p /etc/apt/keyrings \
|
|
||||||
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
|
|
||||||
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
|
|
||||||
&& apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
docker-ce-cli \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Устанавливаем зависимости Python для Ansible и Molecule
|
|
||||||
RUN pip install --upgrade pip && \
|
RUN pip install --upgrade pip && \
|
||||||
pip install \
|
pip install \
|
||||||
ansible \
|
|
||||||
ansible-lint \
|
|
||||||
ansible-vault \
|
|
||||||
molecule \
|
molecule \
|
||||||
molecule-docker \
|
molecule-docker \
|
||||||
molecule-plugins \
|
ansible-lint \
|
||||||
ansible-compat \
|
yamllint \
|
||||||
docker
|
docker \
|
||||||
|
&& rm -rf /root/.cache/pip
|
||||||
|
|
||||||
# Копируем ssh ключ
|
# Создаем рабочую директорию
|
||||||
#COPY id_rsa /root/.ssh/id_rsa
|
|
||||||
#RUN chmod 600 /root/.ssh/id_rsa
|
|
||||||
|
|
||||||
# Устанавливаем рабочую директорию
|
|
||||||
WORKDIR /ansible
|
WORKDIR /ansible
|
||||||
|
|
||||||
|
# Копируем файлы проекта
|
||||||
|
COPY . /ansible/
|
||||||
|
|
||||||
|
# Устанавливаем права на выполнение (если папка scripts существует)
|
||||||
|
RUN if [ -d /ansible/scripts ]; then chmod +x /ansible/scripts/*.sh; fi
|
||||||
|
|
||||||
|
# Устанавливаем пользователя
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# Открываем порт для SSH
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
# Команда по умолчанию
|
# Команда по умолчанию
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
Reference in New Issue
Block a user