diff --git a/README.md b/README.md index 64b3ff7..6fad307 100644 --- a/README.md +++ b/README.md @@ -29,36 +29,26 @@ docker-ubuntu-vnc-desktop is a Docker image to provide web VNC interface to acce Run the docker container and access with port `6080` ```shell -docker run -p 6080:80 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` Browse http://127.0.0.1:6080/ - - -### Ubuntu Flavors - -Choose your favorite Ubuntu version with [tags](https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc/tags/) - -- focal: Ubuntu 20.04 (latest) -- focal-lxqt: Ubuntu 20.04 LXQt -- bionic: Ubuntu 18.04 -- bionic-lxqt: Ubuntu 18.04 LXQt -- xenial: Ubuntu 16.04 (deprecated) -- trusty: Ubuntu 14.04 (deprecated) + + ## VNC Viewer Forward VNC service port 5900 to host by ```shell -docker run -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` Now, open the vnc viewer and connect to port 5900. If you would like to protect vnc service by password, set environment variable `VNC_PASSWORD`, for example ```shell -docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` A prompt will ask password either in the browser or vnc viewer. @@ -68,7 +58,7 @@ A prompt will ask password either in the browser or vnc viewer. This image provides base access authentication of HTTP via `HTTP_PASSWORD` ```shell -docker run -p 6080:80 -e HTTP_PASSWORD=mypassword -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -e HTTP_PASSWORD=mypassword -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` ## SSL @@ -83,7 +73,7 @@ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/nginx.key -out s Specify SSL port by `SSL_PORT`, certificate path to `/etc/nginx/ssl`, and forward it to 6081 ```shell -docker run -p 6081:443 -e SSL_PORT=443 -v ${PWD}/ssl:/etc/nginx/ssl -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6081:443 -e SSL_PORT=443 -v ${PWD}/ssl:/etc/nginx/ssl -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` ## Screen Resolution @@ -91,7 +81,7 @@ docker run -p 6081:443 -e SSL_PORT=443 -v ${PWD}/ssl:/etc/nginx/ssl -v /dev/shm: The Resolution of virtual desktop adapts browser window size when first connecting the server. You may choose a fixed resolution by passing `RESOLUTION` environment variable, for example ```shell -docker run -p 6080:80 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` ## Default Desktop User @@ -99,7 +89,7 @@ docker run -p 6080:80 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm dorowu/ubuntu The default user is `root`. You may change the user and password respectively by `USER` and `PASSWORD` environment variable, for example, ```shell -docker run -p 6080:80 -e USER=doro -e PASSWORD=password -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -e USER=doro -e PASSWORD=password -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi ``` ## Deploy to a subdirectory (relative url root) @@ -107,7 +97,7 @@ docker run -p 6080:80 -e USER=doro -e PASSWORD=password -v /dev/shm:/dev/shm dor You may deploy this application to a subdirectory, for example `/some-prefix/`. You then can access application by `http://127.0.0.1:6080/some-prefix/`. This can be specified using the `RELATIVE_URL_ROOT` configuration option like this ```shell -docker run -p 6080:80 -e RELATIVE_URL_ROOT=some-prefix dorowu/ubuntu-desktop-lxde-vnc +docker run -p 6080:80 -e RELATIVE_URL_ROOT=some-prefix devindice/cloud9-ide-vdi ``` NOTE: this variable should not have any leading and trailing splash (/) @@ -125,7 +115,7 @@ sudo modprobe snd-aloop index=2 Start the container ```shell -docker run -it --rm -p 6080:80 --device /dev/snd -e ALSADEV=hw:2,0 dorowu/ubuntu-desktop-lxde-vnc +docker run -it --rm -p 6080:80 --device /dev/snd -e ALSADEV=hw:2,0 devindice/cloud9-ide-vdi ``` where `--device /dev/snd -e ALSADEV=hw:2,0` means to grant sound device to container and set basic ASLA config to use card 2. diff --git a/rootfs/etc/skel/Workspace/.c9/runners/Django.run b/rootfs/etc/skel/Workspace/.c9/runners/Django.run new file mode 100644 index 0000000..14430d4 --- /dev/null +++ b/rootfs/etc/skel/Workspace/.c9/runners/Django.run @@ -0,0 +1,10 @@ +// Create a custom Cloud9 runner - similar to the Sublime build system +// For more information see https://docs.c9.io/custom_runners.html +{ + "cmd" : [ + "$(pwd)/app/virtualEnv/bin/python3", + "$(pwd)/app/manage.py", + "runserver", + "$(if [ '$IP' == '' ]; then echo 0.0.0.0; else echo $IP; fi):$(if [ '$PORT' == '' ]; then echo 8080; else echo $PORT; fi)" + ] +} \ No newline at end of file diff --git a/rootfs/startup.sh b/rootfs/startup.sh index e40eade..4f19e3c 100755 --- a/rootfs/startup.sh +++ b/rootfs/startup.sh @@ -33,7 +33,7 @@ HOME=/root if [ "$USER" != "root" ]; then echo "* enable custom user: $USER" #useradd --create-home --shell /bin/bash --user-group --groups adm,sudo,docker -d /workspace/.home/$USER $USER - useradd --create-home --shell /bin/bash --user-group --groups adm,sudo,docker $USER + useradd --create-home --shell /bin/bash --user-group --groups adm,sudo,docker $(if [ -z $PUID ]; then echo "--uid $PUID"; fi) $(if [ -z $PGID ]; then echo "--gid $PGID"; fi) $USER if [ -z "$PASSWORD" ]; then echo " set default password to \"ubuntu\"" @@ -43,11 +43,11 @@ if [ "$USER" != "root" ]; then PASSWORD=$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20) fi + #HOME=/workspace/.home/$USER HOME=/home/$USER echo "$USER:$PASSWORD" | chpasswd cp -r /root/{.config,.gtkrc-2.0,.asoundrc} ${HOME} - chown -R $USER:$USER ${HOME} [ -d "/dev/snd" ] && chgrp -R adm /dev/snd fi sed -i -e "s|%USER%|$USER|" -e "s|%HOME%|$HOME|" /etc/supervisor/conf.d/supervisord.conf @@ -134,6 +134,4 @@ grep "file:///home/$USER/Downloads" /home/$USER/.config/gtk-3.0/bookmarks || ech grep "127.0.0.1 archive.linux.duke.edu" /etc/hosts || echo "127.0.0.1 archive.linux.duke.edu" >> /etc/hosts -chown -R $USER:$USER /home/$USER/ - exec /bin/tini -- supervisord -n -c /etc/supervisor/supervisord.conf diff --git a/rootfs/usr/share/applications/google-chrome.desktop b/rootfs/usr/share/applications/google-chrome.desktop index 5112f18..037bffd 100644 --- a/rootfs/usr/share/applications/google-chrome.desktop +++ b/rootfs/usr/share/applications/google-chrome.desktop @@ -105,7 +105,7 @@ Comment[vi]=Truy cập Internet Comment[zh_CN]=访问互联网 Comment[zh_HK]=連線到網際網路 Comment[zh_TW]=連線到網際網路 -Exec=/usr/bin/google-chrome-stable --no-sandbox --disable-dev-shm-usage %U +Exec=/usr/bin/google-chrome-stable --disable-dev-shm-usage %U StartupNotify=true Terminal=false Icon=google-chrome @@ -166,7 +166,7 @@ Name[uk]=Нове вікно Name[vi]=Cửa sổ Mới Name[zh_CN]=新建窗口 Name[zh_TW]=開新視窗 -Exec=/usr/bin/google-chrome-stable --no-sandbox --disable-dev-shm-usage +Exec=/usr/bin/google-chrome-stable --disable-dev-shm-usage [Desktop Action new-private-window] Name=New Incognito Window @@ -218,4 +218,4 @@ Name[uk]=Нове вікно в режимі анонімного перегля Name[vi]=Cửa sổ ẩn danh mới Name[zh_CN]=新建隐身窗口 Name[zh_TW]=新增無痕式視窗 -Exec=/usr/bin/google-chrome-stable --incognito --no-sandbox --disable-dev-shm-usage +Exec=/usr/bin/google-chrome-stable --incognito --disable-dev-shm-usage diff --git a/screenshots/IDE.png b/screenshots/IDE.png new file mode 100644 index 0000000..c79399f Binary files /dev/null and b/screenshots/IDE.png differ diff --git a/screenshots/VDI.png b/screenshots/VDI.png new file mode 100644 index 0000000..8e4c8b8 Binary files /dev/null and b/screenshots/VDI.png differ diff --git a/screenshots/lxde.png b/screenshots/lxde.png deleted file mode 100644 index 345235b..0000000 Binary files a/screenshots/lxde.png and /dev/null differ