# Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule # Используем готовый образ с Ansible FROM geerlingguy/docker-ubuntu2204-ansible:latest # Устанавливаем переменные окружения ENV DEBIAN_FRONTEND=noninteractive ENV container=docker # Устанавливаем дополнительные пакеты для тестирования RUN apt-get update && \ apt-get install -y --no-install-recommends \ systemd \ systemd-sysv \ rsync \ git \ ssh \ gcc \ libffi-dev \ libssl-dev \ make \ sudo \ sshpass \ openssh-client \ nano \ less \ ca-certificates \ curl \ gnupg \ lsb-release \ && rm -rf /var/lib/apt/lists/* # Устанавливаем docker-compose RUN curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose # Устанавливаем дополнительные Python пакеты для Ansible RUN pip install --upgrade pip && \ pip install \ ansible-vault \ molecule \ molecule-docker \ ansible-lint \ yamllint \ docker \ && rm -rf /root/.cache/pip # Указываем, что контейнер использует systemd в качестве init-системы ENV container=docker STOPSIGNAL SIGRTMIN+3 # Создаем необходимые директории для systemd VOLUME [ "/sys/fs/cgroup" ] # Запускаем systemd при старте контейнера CMD ["/sbin/init"]