-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathDockerfile
More file actions
184 lines (159 loc) · 4.63 KB
/
Copy pathDockerfile
File metadata and controls
184 lines (159 loc) · 4.63 KB
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# syntax=docker/dockerfile:1
# check=skip=SecretsUsedInArgOrEnv
FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute
ENV XPIPE_API_KEY=""
ENV XPIPE_PREINSTALLED_WEBTOP_APPS=""
ENV XPIPE_PACKAGE="xpipe"
# From https://github.com/linuxserver/docker-baseimage-selkies?tab=readme-ov-file#options
ENV TITLE="XPipe Webtop"
ENV PIXELFLUX_WAYLAND=true
ENV AUTO_GPU=true
ENV FILE_MANAGER_PATH=/config
ENV NO_GAMEPAD=true
ENV START_DOCKER=false
# From https://github.com/linuxserver/docker-baseimage-selkies?tab=readme-ov-file#selkies-application-settings
ENV SELKIES_UI_TITLE="XPipe"
ENV SELKIES_UI_SHOW_LOGO=false
ENV SELKIES_UI_SIDEBAR_SHOW_AUDIO_SETTINGS=false
ENV SELKIES_UI_SIDEBAR_SHOW_APPS=false
ENV SELKIES_UI_SIDEBAR_SHOW_SHARING=false
ENV SELKIES_UI_SIDEBAR_SHOW_GAMEPADS=false
ENV SELKIES_UI_SIDEBAR_SHOW_GAMING_MODE=false
ENV SELKIES_MICROPHONE_ENABLED=false
ENV SELKIES_GAMEPAD_ENABLED=false
ENV SELKIES_COMMAND_ENABLED=false
ENV SELKIES_ENABLE_SHARING=false
ENV SELKIES_ENABLE_COLLAB=false
ENV SELKIES_ENABLE_SHARED=false
ENV SELKIES_ENABLE_PLAYER2=false
ENV SELKIES_ENABLE_PLAYER3=false
ENV SELKIES_ENABLE_PLAYER4=false
ENV SELKIES_FRAMERATE=30
ENV SELKIES_UI_SIDEBAR_SHOW_VIDEO_SETTINGS=false
ENV SELKIES_UI_SHOW_CORE_BUTTONS=false
ENV SELKIES_AUDIO_ENABLED=false
ENV SELKIES_USE_BROWSER_CURSORS=true
ARG TARGETPLATFORM
# Displays
EXPOSE 3000
EXPOSE 3001
# JDWP debugger
EXPOSE 7857
# API port
EXPOSE 21721
# SSH server
EXPOSE 21222
# prevent Ubuntu's firefox stub from being installed
COPY /root/etc/apt/preferences.d/firefox-no-snap /etc/apt/preferences.d/firefox-no-snap
RUN echo "**** install base packages ****" && \
add-apt-repository -y ppa:mozillateam/ppa && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
man-db \
manpages \
dialog \
bash-completion \
kscreen \
at-spi2-core \
net-tools \
dnsutils \
iputils-ping \
iproute2 \
traceroute \
nmap \
netcat-traditional \
ethtool \
xz-utils \
mtr \
tcpdump \
socat \
dolphin \
firefox \
xdg-desktop-portal \
gwenview \
freerdp3-sdl \
kde-config-gtk-style \
htop \
kdialog \
kfind \
khotkeys \
ksystemstats \
kio-extras \
kwin-addons \
openssh-server \
kwin-x11 \
fastfetch \
kwrite \
libkf6dbusaddons-bin \
wget \
git \
libfuse2 \
zip \
unzip \
debian-goodies \
kmod \
nano \
mousepad \
vim \
neovim \
plasma-desktop \
plasma-workspace \
qtwayland5 \
rsync \
qml-module-qt-labs-platform \
fonts-noto \
fonts-noto-cjk \
systemsettings && \
apt-get remove -y plasma-welcome docker-ce docker-buildx-plugin docker-ce-cli docker-compose-plugin && \
apt-get autoclean && \
rm -rf \
/config/.cache \
/config/.launchpadlib \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
RUN echo "**** Enable manpages ****" && \
rm /etc/dpkg/dpkg.cfg.d/excludes && \
apt-get update && \
apt-get --reinstall install man-db manpages -y && \
apt-get install manpages-posix manpages-posix-dev -y && \
mv /usr/bin/man.REAL /usr/bin/man && \
mandb -c
RUN echo "**** nerdfonts ****" && \
curl -LO "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/UbuntuMono.zip" && \
mkdir -p "/usr/share/fonts/ubuntu-mono-nerd" && \
unzip "UbuntuMono.zip" -d "/usr/share/fonts/ubuntu-mono-nerd" && \
rm "UbuntuMono.zip" && \
fc-cache -fv
VOLUME /config
RUN \
echo "**** add icon ****" && \
curl -L -o \
/usr/share/selkies/www/icon.png \
"https://rawcdn.githack.com/xpipe-io/xpipe/a097ae7a41131fa358b5343345557ad00a45c309/dist/logo/logo.png"
RUN echo "**** install tool packages ****" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
konsole \
alacritty \
kate \
remmina \
screen \
remmina-plugin-rdp && \
apt-get autoclean
RUN echo "**** kde tweaks ****" && \
setcap -r /usr/bin/kwin_wayland
RUN echo "**** use bash for sh ****" && \
ln -s -f /usr/bin/bash /usr/bin/sh
COPY /wl-clipboard /tmp
RUN echo "**** Fix wl-clipboard ****" && \
if [ "$TARGETPLATFORM" = "linux/amd64" ]; then PLATFORM="amd64"; else PLATFORM="arm64"; fi && \
apt-get install --no-install-recommends -y "/tmp/wl-clipboard_2.3.0-1_$PLATFORM.deb"
COPY /root /
RUN echo "**** Adjust sshd config ****" && \
sed --in-place 's/^#\?Port 22$/Port 21222/g' /etc/ssh/sshd_config && \
sed --in-place 's/^#\?PasswordAuthentication yes$/PasswordAuthentication no/g' /etc/ssh/sshd_config
RUN echo "**** Write timestamp ****" && \
date > /defaults/timestamp