File size: 2,381 Bytes
953a430
b8fb4e0
ee79a67
b8fb4e0
ee79a67
b8fb4e0
 
953a430
b8fb4e0
 
953a430
b8fb4e0
953a430
 
b8fb4e0
 
953a430
 
 
 
 
b8fb4e0
953a430
 
 
b8fb4e0
 
953a430
b8fb4e0
 
953a430
 
b8fb4e0
ee79a67
b8fb4e0
ee79a67
953a430
b8fb4e0
 
 
be7ef2c
953a430
 
ee79a67
953a430
 
 
b8fb4e0
ee79a67
953a430
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Используем свежий Ubuntu (на март 2026 — 24.04 LTS)
FROM ubuntu:24.04

# Отключаем интерактивные вопросы при установке
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Moscow

# ─── Установка базовой системы + XFCE + VNC/noVNC ───────────────────────────────
RUN apt-get update -qq && \
    apt-get install -y --no-install-recommends \
        # Десктоп и утилиты
        xfce4 xfce4-goodies xfce4-terminal \
        dbus-x11 \
        # VNC сервер + noVNC (браузерный доступ)
        tigervnc-standalone-server tigervnc-common \
        novnc websockify \
        # Браузер, файловый менеджер, базовые программы
        firefox firefox-locale-ru \
        mousepad ristretto \
        # Шрифты, темы, звук (опционально)
        fonts-dejavu fonts-noto fonts-noto-cjk \
        pulseaudio \
        # Утилиты
        sudo supervisor wget curl nano htop \
        # Чистка
    && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Создаём пользователя (лучше не root)
RUN useradd -m -s /bin/bash user && \
    echo "user:user" | chpasswd && \
    adduser user sudo && \
    echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/user

USER user
WORKDIR /home/user

# Настраиваем VNC пароль (можно менять)
RUN mkdir -p \~/.vnc && \
    echo "123456" | vncpasswd -f > \~/.vnc/passwd && \
    chmod 600 \~/.vnc/passwd

# ─── Конфиг supervisord (запускает всё разом) ────────────────────────────────
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# ─── Порты ────────────────────────────────────────────────────────────────────
# 6080 → noVNC (браузер)
# 5901 → обычный VNC (если понадобится)
EXPOSE 6080 5901

# Запускаем supervisor → он поднимет VNC + noVNC
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]