#!/bin/bash # Скрипт для добавления sudo во все Dockerfile # Автор: Сергей Антропов # Сайт: https://devops.org.ru set -euo pipefail echo "🔧 Добавление sudo во все Dockerfile..." # Список всех Dockerfile для обновления DOCKERFILES=( "dockerfiles/ubuntu/Dockerfile" "dockerfiles/debian/Dockerfile" "dockerfiles/alt-linux/Dockerfile" "dockerfiles/centos/Dockerfile" "dockerfiles/rhel/Dockerfile" "dockerfiles/alma/Dockerfile" "dockerfiles/rocky/Dockerfile" "dockerfiles/redos/Dockerfile" ) for dockerfile in "${DOCKERFILES[@]}"; do if [ -f "$dockerfile" ]; then echo "📝 Обновление $dockerfile..." # Для Debian-based систем (Ubuntu, Debian, Alt Linux) if [[ "$dockerfile" =~ (ubuntu|debian|alt-linux) ]]; then # Добавляем sudo в список пакетов sed -i '/python3-pip \\/a\\ sudo \\' "$dockerfile" # Добавляем настройку sudoers перед созданием пользователя sed -i '/# Создаем пользователя для Ansible/i\\ # Настраиваем sudoers для root и пользователей\\ RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \&\& \\\\ echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test\\ ' "$dockerfile" fi # Для RHEL-based систем (CentOS, RHEL, Alma, Rocky, RedOS) if [[ "$dockerfile" =~ (centos|rhel|alma|rocky|redos) ]]; then # Добавляем sudo в список пакетов sed -i '/python3-pip \\/a\ sudo \\' "$dockerfile" # Добавляем настройку sudoers перед созданием пользователя sed -i '/# Создаем пользователя для Ansible/i\ # Настраиваем sudoers для root и пользователей\ RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \\\ echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test\ ' "$dockerfile" fi echo "✅ $dockerfile обновлен" else echo "⚠️ Файл $dockerfile не найден" fi done echo "🎉 Все Dockerfile обновлены!"