# RedOS совместимый образ для ARM64 # Автор: Сергей Антропов # Сайт: https://devops.org.ru # Базируется на CentOS Stream для совместимости с ARM64 # ВАЖНО: Это эмуляция RedOS на CentOS Stream для ARM64 FROM quay.io/centos/centos:stream9 # Устанавливаем переменные окружения ENV LANG=ru_RU.UTF-8 ENV LANGUAGE=ru_RU:ru ENV LC_ALL=ru_RU.UTF-8 # Обновляем систему RUN dnf update -y && dnf upgrade -y # Устанавливаем локали RUN dnf install -y glibc-langpack-ru glibc-locale-source && \ localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 || true # Устанавливаем systemd и необходимые пакеты RUN dnf install -y --allowerasing \ systemd \ systemd-sysv \ dbus \ curl \ wget \ nano \ python3 \ python3-pip \ sudo \ ca-certificates \ gnupg \ && dnf clean all # Устанавливаем yq (автоопределение архитектуры) RUN ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/') && \ wget -qO /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${ARCH}" && \ chmod +x /usr/local/bin/yq # Устанавливаем Docker для ARM64 RUN ARCH=$(uname -m) && \ dnf install -y dnf-plugins-core && \ dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \ dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && \ dnf clean all # Устанавливаем 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 # Создаем файлы конфигурации для эмуляции RedOS RUN echo "Red OS" > /etc/os-release && \ echo "VERSION_ID=\"8.0\"" >> /etc/os-release && \ echo "PRETTY_NAME=\"Red OS 8.0 (ARM64 Compatible)\"" >> /etc/os-release && \ echo "ID=\"redos\"" >> /etc/os-release && \ echo "ID_LIKE=\"rhel fedora\"" >> /etc/os-release && \ echo "VERSION=\"8.0\"" >> /etc/os-release && \ echo "VERSION_CODENAME=\"\"" >> /etc/os-release && \ echo "PLATFORM_ID=\"platform:el8\"" >> /etc/os-release && \ echo "HOME_URL=\"https://www.red-soft.ru/\"" >> /etc/os-release && \ echo "BUG_REPORT_URL=\"https://www.red-soft.ru/support/\"" >> /etc/os-release && \ echo "REDHAT_BUGZILLA_PRODUCT=\"Red OS\"" >> /etc/os-release && \ echo "REDHAT_BUGZILLA_PRODUCT_VERSION=\"8.0\"" >> /etc/os-release && \ echo "REDHAT_SUPPORT_PRODUCT=\"Red OS\"" >> /etc/os-release && \ echo "REDHAT_SUPPORT_PRODUCT_VERSION=\"8.0\"" >> /etc/os-release # Настраиваем systemd RUN systemctl set-default multi-user.target # Настраиваем sudoers для root и пользователей RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test # Создаем пользователя для Ansible RUN useradd -m -s /bin/bash ansible \ && echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # Команда по умолчанию (система запускается от root для systemd) CMD ["/sbin/init"]