feat: Добавлена поддержка ARM64 для Astra Linux и обновлена документация

- Создан совместимый образ Astra Linux для ARM64 на базе Debian
- Добавлена команда make docker build-astra-arm64 для сборки ARM64 версии
- Обновлена документация по Docker образам с информацией о ARM64 поддержке
- Создан новый файл docs/arm64-support.md с подробным описанием ARM64 поддержки
- Обновлен README.md с информацией о multi-arch поддержке
- Добавлена информация о ALT Linux P9/P10 с поддержкой ARM64

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-27 14:16:29 +03:00
parent c83b2526dc
commit c66bb35f97
7 changed files with 469 additions and 17 deletions

View File

@@ -0,0 +1,79 @@
# Astra Linux совместимый образ для ARM64
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
# Базируется на Debian для совместимости с ARM64
# ВАЖНО: Это эмуляция Astra Linux на Debian для ARM64
FROM debian:bookworm-slim
# Устанавливаем переменные окружения
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=ru_RU.UTF-8
ENV LANGUAGE=ru_RU:ru
ENV LC_ALL=ru_RU.UTF-8
# Обновляем систему
RUN apt-get update && apt-get dist-upgrade -y
# Устанавливаем локали
RUN apt-get install -y locales && \
sed -i 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
# Устанавливаем systemd и необходимые пакеты
RUN apt-get install -y \
systemd \
systemd-sysv \
dbus \
curl \
wget \
nano \
python3 \
python3-pip \
sudo \
ca-certificates \
gnupg \
lsb-release \
&& apt-get clean
# Устанавливаем yq (автоопределение архитектуры)
RUN ARCH=$(dpkg --print-architecture | sed 's/amd64/amd64/; s/arm64/arm64/; 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=$(dpkg --print-architecture) && \
apt-get update && apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release && \
mkdir -p /usr/share/keyrings && \
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=${ARCH} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && \
apt-get clean
# Устанавливаем 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
# Создаем файлы конфигурации для эмуляции Astra Linux
RUN echo "astra-linux" > /etc/os-release && \
echo "VERSION_ID=\"1.7.6.uu2\"" >> /etc/os-release && \
echo "PRETTY_NAME=\"Astra Linux 1.7.6.uu2 (ARM64 Compatible)\"" >> /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"]