-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
98 lines (62 loc) · 2.49 KB
/
Dockerfile
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Use the official Ubuntu base image
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV USER=docker
RUN apt-get update && \
apt-get install -y software-properties-common && \
rm -rf /var/lib/apt/lists/*
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get update
RUN apt-get update && apt-get install -y \
xfce4 \
xfce4-goodies \
tightvncserver \
xterm \
wget \
curl \
xvfb \
software-properties-common \
tzdata \
python3.12 python3.12-dev gcc \
python3.12-tk libportaudio2 scrot libportaudio2
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
RUN add-apt-repository ppa:mozillateam/ppa
RUN apt-get update && apt-get install -y firefox-esr
RUN apt-get install -y gnome-screenshot
RUN apt-get remove -y xfce4-power-manager
RUN curl -sL https://deb.nodesource.com/setup_18.x -o /tmp/nodesource_setup.sh
RUN bash /tmp/nodesource_setup.sh
RUN apt-get install -y nodejs
# Add symbolic link for uvx
RUN ln -s /home/docker/.local/bin/uvx /usr/local/bin/uvx
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
RUN touch /home/docker/.Xauthority
RUN chown docker:docker /home/docker/.Xauthority
USER docker
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
RUN mkdir /home/docker/.vnc
RUN echo "docker" | vncpasswd -f > /home/docker/.vnc/passwd
RUN chmod 600 /home/docker/.vnc/passwd
RUN echo '#!/bin/bash\nxrdb $HOME/.Xresources\nstartxfce4 &' > /home/docker/.vnc/xstartup
RUN chmod +x /home/docker/.vnc/xstartup
EXPOSE 5901
EXPOSE 7541
RUN mkdir /home/docker/Volair
COPY Volair /home/docker/Volair
RUN python3.12 -m pip install --upgrade pip
RUN python3.12 -m pip install /home/docker/Volair[server]
ADD Volair/wallpaper.png /home/docker/Pictures/wallpaper.png
# Configure VNC startup script
RUN echo '#!/bin/bash\n\
xrdb $HOME/.Xresources\n\
startxfce4 &\n\
sleep 2\n\
export XAUTHORITY=$HOME/.Xauthority\n\
export DISPLAY=:1\n\
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image --create -t string -s /home/docker/Pictures/wallpaper.png\n' > /home/docker/.vnc/xstartup
RUN chmod +x /home/docker/.vnc/xstartup
CMD /bin/bash -c "export DISPLAY=:1 && /usr/bin/vncserver :1 -geometry 1366x768 -depth 24 && \
python3.12 -c 'from volairframework.server import run_main_server_internal; run_main_server_internal(reload=False)' & \
python3.12 -c 'from volairframework.tools_server import run_tools_server_internal; run_tools_server_internal(reload=False)' & \
wait"