mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-21 20:03:08 +02:00
56 lines
2.1 KiB
Docker
56 lines
2.1 KiB
Docker
FROM ubuntu:24.04
|
||
|
||
ENV DEBIAN_FRONTEND=noninteractive
|
||
ENV container=docker
|
||
ENV LC_ALL=C
|
||
ENV TZ=UTC
|
||
|
||
# systemd — необходим для инсталлятора (systemctl enable/start xc_vm)
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
systemd systemd-sysv dbus cron \
|
||
lsb-release sudo python3 wget curl unzip \
|
||
iproute2 net-tools apt-utils ca-certificates gnupg \
|
||
&& apt-get clean \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# Убираем только действительно ненужные в контейнере юниты
|
||
# НЕ трогаем sysinit.target.wants (journald, tmpfiles, sysctl — нужны)
|
||
RUN rm -f /lib/systemd/system/multi-user.target.wants/* \
|
||
/lib/systemd/system/local-fs.target.wants/* \
|
||
/lib/systemd/system/sockets.target.wants/*udev* \
|
||
/lib/systemd/system/sockets.target.wants/*initctl* \
|
||
/lib/systemd/system/anaconda.target.wants/* \
|
||
/lib/systemd/system/plymouth* \
|
||
/lib/systemd/system/systemd-update-utmp*
|
||
|
||
# Включаем cron.service обратно (удалён вместе с multi-user.target.wants/*)
|
||
RUN systemctl enable cron.service
|
||
|
||
STOPSIGNAL SIGRTMIN+3
|
||
|
||
WORKDIR /opt/xcvm-install
|
||
|
||
# Скрипт автоматической установки (инлайн — отдельный файл не нужен)
|
||
RUN cat > /opt/xcvm-install/auto_install.sh << 'INSTALL_SCRIPT'
|
||
#!/bin/bash
|
||
# Автоматическая установка XC_VM в контейнере
|
||
# XC_VM.zip монтируется через volume из dist/XC_VM.zip
|
||
set -e
|
||
|
||
cd /opt/xcvm-install
|
||
|
||
# 1. Распаковываем
|
||
unzip -o XC_VM.zip
|
||
|
||
# 2. Устанавливаем (ответы на интерактивные вопросы):
|
||
# - MariaDB root password: пусто (авто-генерация)
|
||
# - HTTP port: пусто (80)
|
||
# - HTTPS port: пусто (443)
|
||
# - Overwrite sysctl: Y
|
||
printf '\n\n\nY\n' | python3 install 2>&1 | tee /var/log/xcvm_install.log
|
||
INSTALL_SCRIPT
|
||
RUN chmod +x /opt/xcvm-install/auto_install.sh
|
||
|
||
# Точка входа — systemd (PID 1), установка запускается через: docker exec ... auto_install.sh
|
||
CMD ["/sbin/init"]
|