-
Notifications
You must be signed in to change notification settings - Fork 118
/
Dockerfile
executable file
·120 lines (111 loc) · 4.7 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
FROM ubuntu:20.04
LABEL Maintainer "Apoorv Vyavahare <apoorvvyavahare@pm.me>"
ARG DEBIAN_FRONTEND=noninteractive
#VNC Server Password
ENV VNC_PASS="samplepass" \
#VNC Server Title(w/o spaces)
VNC_TITLE="Vubuntu_Desktop" \
#VNC Resolution(720p is preferable)
VNC_RESOLUTION="1280x720" \
#VNC Shared Mode (0=off, 1=on)
VNC_SHARED=0 \
#Local Display Server Port
DISPLAY=:0 \
#NoVNC Port
NOVNC_PORT=$PORT \
#Ngrok Token
NGROK_AUTH_TOKEN="placeholder" \
#Brave Shared Memory Usage (Set it to 0 to disable the use of /dev/shm for Brave Browser, helpful for Heroku)
BRAVE_USE_SHM=1 \
#Locale
LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8 \
LC_ALL=C.UTF-8 \
TZ="Asia/Kolkata"
COPY . /app/.vubuntu
SHELL ["/bin/bash", "-c"]
RUN apt-get update && \
apt-get --no-install-recommends install -y \
#Basic Packages
tzdata software-properties-common apt-transport-https wget zip unzip htop git curl vim nano zip sudo net-tools x11-utils eterm iputils-ping build-essential xvfb x11vnc supervisor \
#GUI Utilities
gnome-terminal gnome-calculator gnome-system-monitor pcmanfm terminator firefox \
#Python
python3 python3-pip python-is-python3 \
#Java
default-jre default-jdk \
#Text Editors
vim-gtk3 mousepad pluma \
#NodeJS
nodejs npm \
#Go
golang \
#Other Languages
#perl \
#ruby \
#lua5.3 \
#scala \
#mono-complete \
#r-base \
#clojure \
#php \
#Extras
libreoffice \
gnupg \
dirmngr \
gdebi-core \
nginx \
ffmpeg && \
#Fluxbox & noVNC
apt-get install --no-install-recommends -y /app/.vubuntu/assets/packages/fluxbox.deb /app/.vubuntu/assets/packages/novnc.deb && \
cp /usr/share/novnc/vnc.html /usr/share/novnc/index.html && \
openssl req -new -newkey rsa:4096 -days 36500 -nodes -x509 -subj "/C=IN/ST=Maharastra/L=Private/O=Dis/CN=www.google.com" -keyout /etc/ssl/novnc.key -out /etc/ssl/novnc.cert && \
#Websockify
npm i websockify && \
#MATE Desktop (remove "/app/.vubuntu/assets/packages/fluxbox.deb" from line 66 before uncommenting)
#apt-get install -y \
#ubuntu-mate-core \
#ubuntu-mate-desktop && \
#XFCE Desktop (remove "/app/.vubuntu/assets/packages/fluxbox.deb" from line 66 before uncommenting)
#apt-get install -y \
#xubuntu-desktop && \
#TimeZone
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone && \
#VS Code - source
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/packages.microsoft.gpg && \
install -o root -g root -m 644 /tmp/packages.microsoft.gpg /etc/apt/trusted.gpg.d/ && \
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list && \
#Brave - source
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|tee /etc/apt/sources.list.d/brave-browser-release.list && \
#PeaZip - source
wget https://github.com/peazip/PeaZip/releases/download/8.2.0/peazip_8.2.0.LINUX.GTK2-1_amd64.deb -P /tmp && \
#Sublime - source
curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg | apt-key add - && \
add-apt-repository "deb https://download.sublimetext.com/ apt/stable/" && \
#Telegram - source
wget https://updates.tdesktop.com/tlinux/tsetup.3.2.2.tar.xz -P /tmp && \
tar -xvf /tmp/tsetup.3.2.2.tar.xz -C /tmp && \
mv /tmp/Telegram/Telegram /usr/bin/telegram && \
#PowerShell - source
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -P /tmp && \
#Installation
apt-get update && \
apt-get install --no-install-recommends code brave-browser /tmp/peazip_8.2.0.LINUX.GTK2-1_amd64.deb sublime-text /tmp/packages-microsoft-prod.deb -y && \
apt-get update && \
apt-get install --no-install-recommends -y powershell && \
#Ngrok
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip -P /tmp && \
unzip /tmp/ngrok-stable-linux-amd64.zip -d /usr/bin && \
ngrok authtoken $NGROK_AUTH_TOKEN && \
#Live Server setup for VSCode
code --user-data-dir /root --no-sandbox --install-extension philnash.ngrok-for-vscode && \
code --user-data-dir /root --no-sandbox --install-extension ritwickdey.LiveServer && \
#Wipe Temp Files
rm -rf /var/lib/apt/lists/* && \
apt-get clean && \
apt-get autoremove -y && \
rm -rf /tmp/*
ENTRYPOINT ["supervisord", "-l", "/app/.vubuntu/assets/logs/supervisord.log", "-c"]
CMD ["/app/.vubuntu/assets/configs/supervisordconf"]