- Обновлены Dockerfiles для Ubuntu и Debian по аналогии с astra-linux - Упрощена структура: убраны лишние компоненты (kubectl, helm, kind, ansible) - Установка Docker из официального репозитория вместо пакетов дистрибутива - Добавлен systemd-sysv для корректной работы systemd - Пользователь ansible создается и используется как основной - CMD изменен на /sbin/init для запуска systemd - Добавлена информация о make docker build-image в help - Обновлен общий help (make help) с кратким описанием команды - Обновлен docker help (make docker) с подробной информацией и примерами - Показывается список доступных образов и поддерживаемых платформ - Исправлена установка ansible-lint в ansible-controller Dockerfile - Команда lint теперь использует файл .ansible-lint через volume
		
			
				
	
	
		
			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 и ansible-lint
 | ||
| RUN pip3 install ansible ansible-core ansible-lint
 | ||
| 
 | ||
| # Устанавливаем дополнительные пакеты
 | ||
| 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 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"]
 |