- Добавлена поддержка multi-arch сборки (amd64 и arm64) для всех Docker образов - Реализовано автоматическое извлечение тегов из базовых образов - Добавлены вспомогательные функции: * docker-setup-builder - настройка multi-arch builder * docker-get-base-tag - извлечение тегов из базовых образов * docker-build-image - сборка одного образа с multi-arch - Обновлена сборка ansible-controller с поддержкой multi-arch - Исправлен путь к requirements.yml для ansible-controller - Обновлена справка с информацией о новых возможностях - Все образы теперь автоматически отправляются в Docker Hub при сборке - Поддержка платформ: linux/amd64,linux/arm64 Новые возможности: - Автоматическое извлечение тегов из базовых образов - Multi-arch сборка для всех образов - Автоматическая отправка в Docker Hub - Улучшенная справка с подробным описанием функций
90 lines
2.7 KiB
Docker
90 lines
2.7 KiB
Docker
# Ansible Controller с предустановленными коллекциями
|
||
# Автор: Сергей Антропов
|
||
# Сайт: https://devops.org.ru
|
||
|
||
FROM ubuntu:22.04
|
||
|
||
# Обновляем систему
|
||
RUN apt-get update && apt-get upgrade -y && apt-get clean
|
||
|
||
# Устанавливаем Python и Ansible
|
||
RUN apt-get install -y \
|
||
python3 \
|
||
python3-pip \
|
||
python3-venv \
|
||
python3-dev \
|
||
build-essential \
|
||
&& apt-get clean
|
||
|
||
# Устанавливаем Ansible
|
||
RUN pip3 install ansible ansible-core
|
||
|
||
# Устанавливаем дополнительные пакеты
|
||
RUN apt-get install -y \
|
||
curl \
|
||
wget \
|
||
git \
|
||
vim \
|
||
nano \
|
||
htop \
|
||
tree \
|
||
jq \
|
||
&& apt-get clean
|
||
|
||
# Устанавливаем yq
|
||
RUN wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64 \
|
||
&& chmod +x /usr/local/bin/yq
|
||
|
||
# Устанавливаем Docker CLI
|
||
RUN apt-get install -y docker.io docker-compose
|
||
|
||
# Устанавливаем kubectl
|
||
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
|
||
&& chmod +x kubectl \
|
||
&& mv kubectl /usr/local/bin/
|
||
|
||
# Устанавливаем Helm
|
||
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||
|
||
# Устанавливаем Kind
|
||
RUN curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64 \
|
||
&& chmod +x ./kind \
|
||
&& mv ./kind /usr/local/bin/
|
||
|
||
# Устанавливаем Istio CLI
|
||
RUN curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh - \
|
||
&& mv istio-1.22.1/bin/istioctl /usr/local/bin/ \
|
||
&& rm -rf istio-1.22.1
|
||
|
||
# Копируем requirements.yml
|
||
COPY dockerfiles/ansible-controller/requirements.yml /tmp/requirements.yml
|
||
|
||
# Устанавливаем Ansible коллекции
|
||
RUN ansible-galaxy collection install -r /tmp/requirements.yml
|
||
|
||
# Создаем пользователя ansible
|
||
RUN useradd -m -s /bin/bash ansible \
|
||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||
|
||
# Создаем рабочую директорию
|
||
WORKDIR /ansible
|
||
|
||
# Устанавливаем права
|
||
RUN chown -R ansible:ansible /ansible
|
||
|
||
# Переключаемся на пользователя ansible
|
||
USER ansible
|
||
|
||
# Устанавливаем дополнительные роли
|
||
RUN ansible-galaxy install geerlingguy.docker \
|
||
&& ansible-galaxy install geerlingguy.kubernetes
|
||
|
||
# Настройки для работы с Docker
|
||
ENV DOCKER_HOST=unix:///var/run/docker.sock
|
||
ENV ANSIBLE_FORCE_COLOR=1
|
||
ENV ANSIBLE_STDOUT_CALLBACK=yaml
|
||
ENV ANSIBLE_CALLBACKS_ENABLED=profile_tasks
|
||
|
||
# Команда по умолчанию
|
||
CMD ["sleep", "infinity"]
|