feat: add ubuntu-vnc
This commit is contained in:
parent
351a70e8e5
commit
94cff507b7
5 changed files with 108 additions and 0 deletions
17
Dockerfile
Normal file
17
Dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
|||
ARG VERSION
|
||||
|
||||
FROM ubuntu:${VERSION:-latest}
|
||||
LABEL MAINTAINER="DCsunset"
|
||||
|
||||
RUN apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -yq xfce4 xfce4-goodies \
|
||||
tigervnc-standalone-server \
|
||||
chromium-browser vim
|
||||
|
||||
COPY ./config/helpers.rc /root/.config/xfce4/
|
||||
COPY ./config/chromium-WebBrowser.desktop /root/.local/share/xfce4/helpers/
|
||||
COPY ./start.sh /
|
||||
|
||||
EXPOSE 5900 80
|
||||
|
||||
CMD [ "/start.sh" ]
|
65
README.md
Normal file
65
README.md
Normal file
|
@ -0,0 +1,65 @@
|
|||
# docker-ubuntu-vnc
|
||||
|
||||
An Ubuntu docker image to provide VNC access to
|
||||
Xfce desktop environment.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
docker run -d -p 5900:5900 -e VNC_PASSWD=password dcsunset/ubuntu-vnc
|
||||
```
|
||||
|
||||
If `VNC_PASSWD` is not set,
|
||||
then the security type of vncserver is set to None,
|
||||
it is **insecure** when exposing the container on the Internet.
|
||||
|
||||
## Exposed ports
|
||||
|
||||
* 5900: Used for VNC interface
|
||||
|
||||
## Installed applications
|
||||
|
||||
To make the image lightweight,
|
||||
only the following applications are installed by default:
|
||||
|
||||
* Xfce desktop
|
||||
* TigerVNC server
|
||||
* Vim
|
||||
* Chromium browser
|
||||
|
||||
## Fonts
|
||||
|
||||
If non-latin characters are not displayed well,
|
||||
install the font packs based on your needs.
|
||||
|
||||
To install the Indian font pack:
|
||||
|
||||
```
|
||||
sudo apt-get install fonts-indic
|
||||
```
|
||||
|
||||
To install the CJK font pack:
|
||||
|
||||
```
|
||||
sudo apt-get install fonts-noto-cjk
|
||||
```
|
||||
|
||||
To install the international font pack:
|
||||
|
||||
```
|
||||
sudo apt-get install fonts-noto
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
To use the latest Ubuntu image:
|
||||
|
||||
```
|
||||
docker build -t ubuntu-vnc .
|
||||
```
|
||||
|
||||
Or specify a version:
|
||||
|
||||
```
|
||||
docker build --build-arg VERSION=18.04 -t ubuntu-vnc .
|
||||
```
|
10
config/chromium-WebBrowser.desktop
Normal file
10
config/chromium-WebBrowser.desktop
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
Version=1.0
|
||||
Encoding=UTF-8
|
||||
Type=X-XFCE-Helper
|
||||
X-XFCE-Category=WebBrowser
|
||||
X-XFCE-CommandsWithParameter=chromium-browser --no-sandbox "%s"
|
||||
Icon=chromium-browser
|
||||
Name=chromium-browser
|
||||
X-XFCE-Commands=chromium-browser --no-sandbox
|
2
config/helpers.rc
Normal file
2
config/helpers.rc
Normal file
|
@ -0,0 +1,2 @@
|
|||
TerminalEmulator=xfce4-terminal
|
||||
WebBrowser=chromium-WebBrowser
|
14
start.sh
Executable file
14
start.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
umask 0077 # use safe default permissions
|
||||
mkdir -p "$HOME/.vnc" # create config directory
|
||||
chmod go-rwx "$HOME/.vnc" # enforce safe permissions
|
||||
|
||||
if [ ! -z $VNC_PASSWD ]; then
|
||||
vncpasswd -f <<< "$VNC_PASSWD" > "$HOME/.vnc/passwd"
|
||||
vncserver -fg -localhost no :0
|
||||
else
|
||||
vncpasswd -f <<< "" > "$HOME/.vnc/passwd"
|
||||
vncserver -fg --I-KNOW-THIS-IS-INSECURE -SecurityTypes None -localhost no :0
|
||||
fi
|
||||
|
Reference in a new issue