jlesage / docker-baseimage-gui Goto Github PK
View Code? Open in Web Editor NEWA minimal docker baseimage to ease creation of X graphical application containers
License: MIT License
A minimal docker baseimage to ease creation of X graphical application containers
License: MIT License
It would be great to enable the use of loading custom fonts when the image is stared. My thought is something like this:
ENABLE_CUSTOM_FONTS=1
fc-cache -f -v -y /config/baseimage/fonts
This would enable end user custom fonts to be install simply by placing them in the correct location, ensuring it is enabled and restarting the docker container.
Is there a way to enable clipboard at the image? I want to paste into the application and copy from the application running in the container
I set up JRiver docker on a QNAP running QTS 4.4.3 vith a VNS set up for more security. If I use a web interface I get a JRiver screen but a red X at the top to the right of JRiver. When I look at the QNAP Container station it shows an app withthe directory/User I used for the config with JRiverMC26 under that when I expand it. When I look at the run informtion it appears to be taking a number of errors.
I'll send you the run info if you can tell me how to attach it. It's in a TBZ file type and it doesn't look like my PC will handle converting/expanding that.
Trying to create a Calibre docker based on this image, keep getting this error:
QXcbConnection: Could not connect to display :0
Dockerfile:
FROM jlesage/baseimage-gui:ubuntu-16.04
RUN apt-get update && \
apt-get install -y python wget xz-utils xdg-utils locales
RUN wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin
ENV LANG=en_US.UTF-8
RUN locale-gen en_US.UTF-8
# Copy the start script.
COPY startapp.sh /startapp.sh
# Set the name of the application.
ENV APP_NAME="Calibre"
startapp just contains a call to start calibre from /opt/calibre/ . Any insight appreciated.
I'm trying to use this brilliant image with VSCode Dev Container and I fail miserably. Seems to be some issue with the VSCode sleep command to keep workspace open and the startapp.sh functionality. As a workaround I have been trying to let this image sleep and wait for connection to x server over tcp by adding '-listen tcp -ac' to the Xvfb startup, and have my program connect from another container. However getting this working seems to be above my level of understanding :( Any ideas?
Hi,
I'm trying to rebuild a base image from Dockerfile.debian
It fails because of unknown commands: add-pkg, del-pkg, sed-patch and install-icon...
same for Dockerfile.alpine.
I must have missed something...
Thans for your comments
Is there any plan to release a Ubuntu 18.04 LTs release of this handy baseimage-gui?
Hey, I'm trying to run Nitro Explorer 3 inside this container. The container always exits immediately throwing the error:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-4335 in java.library.path
no swt-gtk in java.library.path
Can't load library: /dev/null/libswt-gtk-4335-64.so
Can't load library: /dev/null/libswt-gtk-64.so
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at gui.MainWindow.open(MainWindow.java:65)
at gui.MainWindow.main(MainWindow.java:55)
... 5 more
I have tried alpine, debian and ubuntu, i always get this message.
My basic approach is this:
Inside the Dockerfile
Inside the startapp.sh:
/usr/bin/java -jar /opt/nitro/myapp.jar
A lot of hours have gone into this and I don't know what I could possibly do to make this work.
If you could assist me, that would be awesome.
Thanks!
Thank you for your good and easy to customize base image with a nice gui
I use your base image and customized it with running custom code now i have following problem
when i run more then 1 replicas on my vm in swarm mode
i can just access the latest created replica via http://hostdns:5800
i cannot use a port range in my docker compose file as its not allowed in swarm mode
currently my stack looks like that
version: '3' services: worker: image: vnc-docker:1.0 shm_size: 2g privileged: true volumes: - /home/username/firefox:/config:rw ports: - 5800:5800 deploy: mode: replicated replicas: 1 update_config: parallelism: 1 delay: 10s restart_policy: condition: any
i tried different things out, like creating a custom network and use it
something like
ports: - 5800-5900:5800
does not work
i just found out now that there is something like mcvlan, but i just couldn't figure out how to create a macvlan network and use it in my compose?
Make the background of the GUI in dark mode (not talking about the apps inside, but just the white background in a black or dark grey background.)
Hello,
is there any plan to create ARM64v8 images of this project?.
They are only amd64 as far as I've seen and it would be useful for all of us having Raspberry Pi 4 (or clusters of it).
Thank you!
Hi
Is there a way to run a full desktop , with this ?
Basically I have an app that calls a web browser for authentication purposes
Any help is appreciated
Thanks
As other tools from jlesage, it should be great to change the port from the Environment Variables.
I am using Docker inside of Synology DSM and is hard to do some configuration unless are exposed as variables.
I am using more applications from jlesage and I can't use them at the same time due to having the same port 5800 (like jdownloader) unless mapping ports, which I would like to avoid (although I know is possible).
Hi @jlesage !
I have a problem building my rclonebrowser image, the application only runs on first execution, and since the restart of the container, I only get a black screen. Did you notice problems with Qt applications? Thank you!
Dockerfile:
FROM jlesage/baseimage-gui:debian-10
# Install gitkraken.
RUN apt update \
&& apt install -y wget \
&& wget https://release.gitkraken.com/linux/gitkraken-amd64.deb -P /tmp \
&& apt remove -y wget \
&& apt install -y gconf2 gconf-service libgtk2.0-0 libnotify4 libnss3 gvfs-bin xdg-utils libxss1 libasound2 procps\
&& dpkg -i /tmp/gitkraken-amd64.deb \
&& rm -rf /var/cache/apt /tmp/gitkraken-amd64.deb
# Copy the start script.
COPY startapp.sh /startapp.sh
# Set the name of the application.
ENV APP_NAME="GitKraken"
startapp.sh
#!/bin/sh
exec /usr/bin/gitkraken
docker run --rm -p 5800:5800 -p 5900:5900 gitkraken
Result:
[services.d] starting statusmonitor...
[services.d] starting logmonitor...
[statusmonitor] no file to monitor: disabling service...
[services.d] starting app...
[logmonitor] no file to monitor: disabling service...
[app] starting GitKraken...
[services.d] done.
**Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted**
[services.d] stopping services
[services.d] stopping app...
[services.d] stopping logmonitor...
[services.d] stopping statusmonitor...
[services.d] stopping openbox...
[services.d] stopping certsmonitor...
[services.d] stopping nginx...
[services.d] stopping x11vnc...
caught signal: 15
20/08/2020 14:30:59 deleted 40 tile_row polling images.
[services.d] stopping xvfb...
[services.d] stopping s6-fdholderd...
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
Any hint?
Hi,
It should be a good idea to enable this:
https://github.com/novnc/noVNC/blob/master/vnc.html#L234
My work firewall is autoclosing websockets every few minutes.
Thanks !
I´m trying to rebuild the baseimage for debian9 (arm) and debian10 (amd64 & arm) also did debian9 amd64 now. SSL does not work for VNC. I´m getting this error somewhere in the logs
==========================================================================
*** No encryption library could be found. ***
A libvncserver/libvncclient built this way will not support SSL encryption.
To enable SSL install the necessary development packages (perhaps it is named
something like libssl-dev or gnutls-dev) and run configure again.
==========================================================================
The test for it is also failing
Checking availability of VNC SSL port 5900...
(in test file tests/test_secure_port_availability.bats, line 33)
`(( TIMEOUT > 0 ))' failed
Starting docker container...
Stopping docker container...
1fc896a668cd3a6b6b03e701372aa876debf76b19a417e622c2b64a36099e7d7
Removing docker container...
1fc896a668cd3a6b6b03e701372aa876debf76b19a417e622c2b64a36099e7d7
Are you getting the same error, or am I doing something wrong?
Hello and thank-you for your work.
What do you think about add archlinux to your list of distribututions?
Thanks
Hi! I've tried to run your example, replacing xterm with glxspeheres64 (the installed correctly from edge/testing repo of alpine) via x11docker.
Tested with a lot of different options but I got all the time this error:
/bin/sh: -c requires an argument
Do you have any idea why is this? Thanks.
Hi,
I have been trying to use this amazing container to run GPU applications. So far I have not ben able to do so.
I created a new container (I addedd the recipies that creates this container https://gitlab.com/nvidia/samples/blob/master/opengl/ubuntu16.04/turbovnc-virtualgl/Dockerfile )
I have tried everything, and even when I am able to run virtualgl with no problem and that the NVIDIA drivers ar eproperly configured (you can run nvidia-smi inside the container) the container doesn't use the GPU.
I reviewed your code and tried to make sense of it but I can't find the missing link. Have you run any application GPU capable with this recipie?
It would be really nice to have something like that .
When using the clipboard and submitting a lot of data, a loop of JavaScript errors happen.
From a user perspective, the clipboard submit does't work and the interface doesn't seem to be responsive. A refresh of the page is needed.
Hey @jlesage I am using your base image for a build of mine. Dockerfile below. Basically, it launches an instance of Thunderbird, which gives me the accessibility of webmail and the features of a desktop client. As Thunderbird profiles are launched from home directories, I mapped /config/app to a host directory containing the profile/settings. To test, I launched the container, with xterm as the startapp, set the home env with HOME=/config/app
, and then proceeded to successfully launch thunderbird with thunderbird
. With the test being successful, the last step is then to set the home directory for the user app (uid 1000) to /config/app within the dockerfile: ENV HOME="/config/app"
FROM jlesage/baseimage-gui:debian-10
RUN apt update && \
apt upgrade -y && \
apt install -y thunderbird
#Debugging purposes
Run apt install htop xterm -y
COPY startapp.sh /startapp.sh
ENV APP_NAME="Thunderbird"
ENV HOME="/cofig/app/"
However, upon logging into xterm as user app
, HOME remains empty:
Can you tell me how/why this ENV isn't sticking or is getting overwritten? Thanks!
PS Love your work. Keep it up!
The link to "XDG Base Directory Specification" is https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html but that leads to a '404'. Maybe the new URL is https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
Favicons are referenced using absolute paths (i.e. /images/icons/...)
All other resources in /opt/novnc/index.vnc are referenced using relative paths (i.e. js/..., css/..., etc).
Referencing resources via absolute paths breaks the application when it is running behind a reverse proxy using path based routing (i.e. http://server/appname/ --> http://realserver/).
This issue is affecting the 'jlesage/docker-handbrake' project, but as the script that installs the favicons exists in this project (i.e. /usr/local/bin/install_app_icon.sh), I am filing the issue here.
Enable dark mode of linux in order to get the QT dark mode, and apps like mkvcleaver, mkvtoolnix, handbrake could trigger automatically dark mode.
Hi,
I'm using docker-jdownloader-2
, based on docker-baseimage-gui
.
I have issue to see correct names of the packages / filenames in VNC.
The first package name is in Japanese (no clue what it there) and the second has some wired characters in the name (source: https://www.youtube.com/watch?v=rD-nLlXSSxs).
What is missing in the configuration in this case?
I can't connect to the server with encryption enabled.
using Windows 10 64bit
and SSNVC
ssvnc_windows_only-1.0.30.
I have opened a question on SuperUser
: https://superuser.com/questions/1310970/x11vnc-ssvnc-readexact-socket-error-while-reading
I tried to build a baseimage-gui for ubuntu 14.04 to be able to use Ivideon with gui on my synology NAS.
(it does not work on ubuntu 16.04)
Not succeeding I went to try to rebuild the baseimage-gui:ubuntu-16.04-v3.3.5
I followed the full build process basimage ./build.sh ubuntu-16.04 then baseimage-gui idem
Then build of baseimage-gui
At the end an image is build but when I use it (xterm exemple) it doesn't work (docker build OK) and docker run start and immediately stop with the following logs
ifelse: fatal: unable to exec /etc/s6/init-no-catchall/init-stage1: Permission denied
ifelse: fatal: unable to exec /etc/s6/init-no-catchall/init-stage1: Permission denied
Could you help me debbug.
What is different in your building process ?
On Debian this script fails https://raw.githubusercontent.com/jlesage/docker-baseimage-gui/master/rootfs/etc/cont-init.d/10-cjk-font.sh with the following error
[cont-init.d] 10-cjk-font.sh: executing...
[cont-init.d] 10-cjk-font.sh: installing CJK font...
[cont-init.d] 10-cjk-font.sh: Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
[cont-init.d] 10-cjk-font.sh: Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
[cont-init.d] 10-cjk-font.sh: Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
[cont-init.d] 10-cjk-font.sh: Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [267 kB]
[cont-init.d] 10-cjk-font.sh: Get:5 http://dist.jriver.com/latest/mediacenter buster InRelease [3612 B]
[cont-init.d] 10-cjk-font.sh: Get:6 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
[cont-init.d] 10-cjk-font.sh: Get:7 http://deb.nodesource.com/node_12.x buster InRelease [4584 B]
[cont-init.d] 10-cjk-font.sh: Get:8 http://dist.jriver.com/latest/mediacenter buster/main armhf Packages [683 B]
[cont-init.d] 10-cjk-font.sh: Get:9 http://dist.jriver.com/latest/mediacenter buster/main i386 Packages [707 B]
[cont-init.d] 10-cjk-font.sh: Get:10 http://dist.jriver.com/latest/mediacenter buster/main amd64 Packages [677 B]
[cont-init.d] 10-cjk-font.sh: Get:11 http://dist.jriver.com/latest/mediacenter buster/main arm64 Packages [644 B]
[cont-init.d] 10-cjk-font.sh: Get:12 http://deb.debian.org/debian buster-updates/main amd64 Packages [9504 B]
[cont-init.d] 10-cjk-font.sh: Get:13 http://deb.nodesource.com/node_12.x buster/main amd64 Packages [767 B]
[cont-init.d] 10-cjk-font.sh: Fetched 8434 kB in 2s (4919 kB/s)
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Building dependency tree...
[cont-init.d] 10-cjk-font.sh: Reading state information...
[cont-init.d] 10-cjk-font.sh: The following NEW packages will be installed:
[cont-init.d] 10-cjk-font.sh: fonts-wqy-zenhei
[cont-init.d] 10-cjk-font.sh: 0 upgraded, 1 newly installed, 0 to remove and 40 not upgraded.
[cont-init.d] 10-cjk-font.sh: Need to get 7472 kB of archives.
[cont-init.d] 10-cjk-font.sh: After this operation, 16.8 MB of additional disk space will be used.
[cont-init.d] 10-cjk-font.sh: Get:1 http://deb.debian.org/debian buster/main amd64 fonts-wqy-zenhei all 0.9.45-7 [7472 kB]
[cont-init.d] 10-cjk-font.sh: debconf: delaying package configuration, since apt-utils is not installed
[cont-init.d] 10-cjk-font.sh: Fetched 7472 kB in 1s (11.1 MB/s)
[cont-init.d] 10-cjk-font.sh: dpkg: unrecoverable fatal error, aborting:
[cont-init.d] 10-cjk-font.sh: unknown system group 'messagebus' in statoverride file; the system group got removed
[cont-init.d] 10-cjk-font.sh: before the override, which is most probably a packaging bug, to recover you
[cont-init.d] 10-cjk-font.sh: can remove the override manually with dpkg-statoverride
[cont-init.d] 10-cjk-font.sh: E: Sub-process /usr/bin/dpkg returned an error code (2)
[cont-init.d] 10-cjk-font.sh: exited 0.
Removing this line root messagebus 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
in /var/lib/dpkg/statoverride
fixes this.
Modified 10-cjk-font.sh
#!/usr/bin/with-contenv sh
set -e # Exit immediately if a command exits with a non-zero status.
set -u # Treat unset variables as an error.
log() {
echo "[cont-init.d] $(basename $0): $*"
}
if [ "${ENABLE_CJK_FONT:-0}" -eq 1 ]; then
if fc-list | grep -q "WenQuanYi Zen Hei"; then
log "CJK font already installed."
else
log "installing CJK font..."
if [ -n "$(which apk)" ]; then
add-pkg wqy-zenhei --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing 2>&1 | sed "s/^/[cont-init.d] $(basename $0): /"
else
sed -i /messagebus/d /var/lib/dpkg/statoverride
add-pkg fonts-wqy-zenhei 2>&1 | sed "s/^/[cont-init.d] $(basename $0): /"
fi
fi
fi
# vim: set ft=sh :
I can run container fine and install & run chrome normally. But when I try to navigate to our LAN server (located in 192.168.0.1) connection is rejected. A NMAP scan from inside the the container shows dns is correctly result but that ip redirects to local instead of remote machine:
# nmap 192.168.0.1
Starting Nmap 7.40 ( https://nmap.org ) at 2018-08-27 09:19 UTC
Nmap scan report for xxxxxxxxxx.xxxxxxxxx.local (192.168.0.1)
Host is up (0.000036s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
111/tcp open rpcbind
5800/tcp open vnc-http
5900/tcp open vnc
Which service is taking the 192.168.0.1 ip? Ifconfig doesn't show any device
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 54140 bytes 42405776 (40.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 46411 bytes 13510655 (12.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 71085 bytes 13893319 (13.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 71085 bytes 13893319 (13.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
startapp.sh MUST Start with #!/bin/sh
Hi,
I need to run WinScp on the container using wine. as for now WinScp is x86 based and can't be running
with .x64 wine.
Cheers
Hello,
I'm using your JDownloader docker container a while and I'm happy. Now I tried to implement my own container based on your baseimage to run MTPlayer, Java-File.
The dockerfile loads jlesage/baseimage-gui:alpine-3.9-glibc-v3.5.2, install openjdk11, download MTPlayer and try to start MTPlayer:
`
FROM jlesage/baseimage-gui:alpine-3.9-glibc-v3.5.2
ARG DOCKER_IMAGE_VERSION=unknown
ARG MTPLAYER_URL=https://www.p2tools.de/extra/download/MTPlayer-9.zip
WORKDIR /tmp
RUN \
add-pkg --virtual build-dependencies curl p7zip && \
curl -# -L -o MTPlayer-9.zip ${MTPLAYER_URL} && \
7za x MTPlayer-9.zip && \
del-pkg build-dependencies
RUN \
apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
COPY rootfs/ /
WORKDIR /tmp/MTPlayer
ENV APP_NAME="MTPlayer" \
S6_KILL_GRACETIME=8000
VOLUME ["/config"]
VOLUME ["/output"]`
I know there is a lot of optimization (e.g. volumes), but I tried first to run the app and after I will make it nice.
In rootfs
there is a file called startapp.sh
with the following lines:
#!/bin/sh
java -Djava.awt.headless=false -jar ./MTPlayer.jar "$@"
I build the image with docker build -t mtplayer .
and the build-process-output looks fine. When I try to start the container with
docker run -it -p 5800:5800 mtplayer
I get the following error:
[12:59:59] INFO: Proxy Authentication: not configured
Exception in thread "main" java.lang.UnsupportedOperationException: Unable to open DISPLAY
at com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(GtkApplication.java:173)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.<init>(GtkApplication.java:171)
at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41)
at com.sun.glass.ui.Application.run(Application.java:144)
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:258)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:269)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)
Any idea how I can solve this please?
Carsten
Hi,
I'm trying to correct an issue I've got using this image as a base for a piece of software called dvdisaster. I've managed to get all the build working but I'm struggling with the permissions to /dev/sr0. On the docker host my user with id 1000 is a member of the cdrom group which has rw
on /dev/sr0 on my host but the app
user inside the container isn't able to access sr0 from my host.
I have then docker exec
'd into the container and done usermod -aG cdrom app
and reloaded the app and it's then able to access /dev/sr0. I've tried adding the usermod to my Dockerfile but I think this user is made on container start.
Any tips?
Thanks,
b3vis
P.S I tried to look through your MakeMKV container to see how you've solved this on that image but was unable to see anything obvious
The default port is set to 5800 for all your docker images and the default cannot be changed. For containers on my normal docker network this is fine since I can remap the ports in the compose file, but if I use a VPN docker network then all containers share the same network interface as the vpn client container.
For instance, the vpn client docker compose file would look something like this:
vpn_client:
image: dperson/openvpn-client
ports:
#ports for app containers' UI to be reachable from local network
#firefox
- "5801:5800"
#jdownloader
#- "5802:5800"
.... etc
and then your docker containers would have in their compose section:
network_mode: "service:vpn_client"
Since all your docker images share 5800 as the default port, I can't use more than one of them on my VPN docker network. Please add an environment variable to the base-image to change the default port number to allow cases like this.
Hey, I want to run a wine application with this docker image. But when i start the container, it exits immediately.
This is my Dockerfile:
FROM jlesage/baseimage-gui:debian-9
RUN \
dpkg --add-architecture i386 && \
apt update && \
apt install -y \
mono-complete \
wget \
wine
COPY startapp.sh /startapp.sh
COPY ./randomwindowsapp /app
ENV APP_NAME="Crystaltile2"
This is my startapp.sh:
#!/bin/sh
/usr/bin/wine /app/randomwindowsapp.exe
Do you know what im doing wrong here?
Thanks!
I´m currently trying to base a JRiver Media Center 25 container off your image. It´s already kind of working, but when you click minimize you have no way to get it back, other than restarting the container.
If you´re interested I have made the repo public on my gitlab right now https://gitlab.shio.at/max/jrivermc25-docker
Would be glad for any suggestions on how to achieve this, or wether or not you had to deal with this before. It works fine with guis that use standard window decorations. They go away. But for this one it neigher will go fullscreen on start, nor will it remove the mimize actions.
I don´t really expect any help necessarily. But if you already know, I´d appreaciate it nevetheless. Otherwise, I´ll keep digging this weekend (or after) and report back if I happened to solve it eventually.
It would be super useful for a image for this based against the nvidia docker images potentially to accelerate rendering if GPUs are available or as in my case in order to use CUDA to accelerate the program I am running.
This would potentially be extremely useful for people if they wanted to run things like Handbrake as it would enable accelerated transcoding using the nvidia runtime for docker.
At the moment I am tinkering with this to see if I can get it working, but you'd be a lot more familiar with your image!
Hello, I am having difficulty using nginx to reverse proxy.
proxy_pass http://localhost:5800/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header X-Frame-Options SAMEORIGIN;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
}
(ssl)
Error: https://hastebin.ericz.me/ahanebodaz.cs
https://eric.is-fi.re/2obsMAg.png
It would be great to replace x11vnc and xvfb with TigerVNC. This would allow resizing of the remote desktop accordingly to resizing the browser window (perhaps best with disable option e.g. by setting the width and height explicitly).
I would like the help in the process if you want to.
Is there something that directly speaks against this idea? Perhaps you already tried and have good reasons not to use TigerVNC?
Best regards
Benedict
By default, both ports 5800
and 5900
are exposed in the container. It would be fantastic to be able to add the option toggle the following port exposures:
This would enable the selection of the preferred connection for an end user and minimize service exposure in the container.
Hello,
Thanks for these great containers.
Is it possible that you can update
libvncserver
x11vnc
novnc
These were forked in 2017 and I am pretty sure there are many improvements till now. It would be great if you could upgrade these.
Hi,
So far I've been using the docker tags "jlesage/baseimage-gui:alpine-3.10" without the version number on the end, but with the new alpine-3.11 the available tags all have "v" "number" at the end. Just asking if that's your new standard going forward? No problem if so, I can update all my dockerfiles to comply with the new tags.
thanks
a place to suggest new images apps ?! thanks !
I am using Docker (Version 2.0.0.0-win81 (29211)) on Windows 10. Following exactly your example "Getting started" provided in README.md, I got the following log, mentioning "s6-applyuidgid: fatal: unable to exec /startapp.sh: No such file or directory":
C:\Users\Sofke\Desktop\dockerGui>docker build -t docker-xterm .
Sending build context to Docker daemon 5.12kB
Step 1/4 : FROM jlesage/baseimage-gui:alpine-3.6
---> 03c81ba1677f
Step 2/4 : RUN add-pkg xterm
---> Using cache
---> b8433a4f4a96
Step 3/4 : COPY startapp.sh /startapp.sh
---> 3ba17dfd408f
Step 4/4 : ENV APP_NAME="Xterm"
---> Running in c3d4798cc140
Removing intermediate container c3d4798cc140
---> 37268c153245
Successfully built 37268c153245
Successfully tagged docker-xterm:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
C:\Users\Sofke\Desktop\dockerGui>docker run --rm -p 5800:5800 -p 5900:5900 docker-xterm
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-app-niceness.sh: executing...
[cont-init.d] 00-app-niceness.sh: exited 0.
[cont-init.d] 00-app-script.sh: executing...
[cont-init.d] 00-app-script.sh: exited 0.
[cont-init.d] 00-app-user-map.sh: executing...
[cont-init.d] 00-app-user-map.sh: exited 0.
[cont-init.d] 00-clean-logmonitor-states.sh: executing...
[cont-init.d] 00-clean-logmonitor-states.sh: exited 0.
[cont-init.d] 00-clean-tmp-dir.sh: executing...
[cont-init.d] 00-clean-tmp-dir.sh: exited 0.
[cont-init.d] 00-set-app-deps.sh: executing...
[cont-init.d] 00-set-app-deps.sh: exited 0.
[cont-init.d] 00-set-home.sh: executing...
[cont-init.d] 00-set-home.sh: exited 0.
[cont-init.d] 00-take-config-ownership.sh: executing...
[cont-init.d] 00-take-config-ownership.sh: exited 0.
[cont-init.d] 00-xdg-runtime-dir.sh: executing...
[cont-init.d] 00-xdg-runtime-dir.sh: exited 0.
[cont-init.d] 10-certs.sh: executing...
[cont-init.d] 10-certs.sh: exited 0.
[cont-init.d] 10-cjk-font.sh: executing...
[cont-init.d] 10-cjk-font.sh: exited 0.
[cont-init.d] 10-nginx.sh: executing...
[cont-init.d] 10-nginx.sh: exited 0.
[cont-init.d] 10-vnc-password.sh: executing...
[cont-init.d] 10-vnc-password.sh: exited 0.
[cont-init.d] 10-web-index.sh: executing...
[cont-init.d] 10-web-index.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] starting s6-fdholderd...
[services.d] starting xvfb...
[xvfb] starting...
[services.d] starting openbox...
[openbox] starting...
Openbox-Message: Openbox was compiled without image loading support. Icons in menus will not be loaded.
[services.d] starting certsmonitor...
[services.d] starting logmonitor...
[services.d] starting nginx...
[logmonitor] no file to monitor: disabling service...
[certsmonitor] disabling service: secure connection not enabled.
[services.d] starting statusmonitor...
[nginx] starting...
[services.d] starting x11vnc...
[statusmonitor] no file to monitor: disabling service...
[x11vnc] starting...
[services.d] starting app...
14/12/2018 20:36:41 passing arg to libvncserver: -rfbport
14/12/2018 20:36:41 passing arg to libvncserver: 5900
14/12/2018 20:36:41 passing arg to libvncserver: -rfbportv6
14/12/2018 20:36:41 passing arg to libvncserver: -1
14/12/2018 20:36:41 passing arg to libvncserver: -httpportv6
14/12/2018 20:36:41 passing arg to libvncserver: -1
14/12/2018 20:36:41 passing arg to libvncserver: -desktop
14/12/2018 20:36:41 passing arg to libvncserver: Xterm
[app] starting Xterm...
14/12/2018 20:36:41 x11vnc version: 0.9.14 lastmod: 2015-11-14 pid: 749
s6-applyuidgid: fatal: unable to exec /startapp.sh: No such file or directory
14/12/2018 20:36:41 Using X display :0
14/12/2018 20:36:41 rootwin: 0x43 reswin: 0x400001 dpy: 0x35eea00
14/12/2018 20:36:41
14/12/2018 20:36:41 ------------------ USEFUL INFORMATION ------------------
[services.d] done.
14/12/2018 20:36:41 X DAMAGE available on display, using it for polling hints.
14/12/2018 20:36:41 To disable this behavior use: '-noxdamage'
14/12/2018 20:36:41
14/12/2018 20:36:41 Most compositing window managers like 'compiz' or 'beryl'
14/12/2018 20:36:41 cause X DAMAGE to fail, and so you may not see any screen
14/12/2018 20:36:41 updates via VNC. Either disable 'compiz' (recommended) or
14/12/2018 20:36:41 supply the x11vnc '-noxdamage' command line option.
14/12/2018 20:36:41 X COMPOSITE available on display, using it for window polling.
14/12/2018 20:36:41 To disable this behavior use: '-noxcomposite'
14/12/2018 20:36:41
14/12/2018 20:36:41 Wireframing: -wireframe mode is in effect for window moves.
14/12/2018 20:36:41 If this yields undesired behavior (poor response, painting
14/12/2018 20:36:41 errors, etc) it may be disabled:
14/12/2018 20:36:41 - use '-nowf' to disable wireframing completely.
14/12/2018 20:36:41 - use '-nowcr' to disable the Copy Rectangle after the
14/12/2018 20:36:41 moved window is released in the new position.
14/12/2018 20:36:41 Also see the -help entry for tuning parameters.
14/12/2018 20:36:41 You can press 3 Alt_L's (Left "Alt" key) in a row to
14/12/2018 20:36:41 repaint the screen, also see the -fixscreen option for
14/12/2018 20:36:41 periodic repaints.
14/12/2018 20:36:41 GrabServer control via XTEST.
14/12/2018 20:36:41
14/12/2018 20:36:41 Scroll Detection: -scrollcopyrect mode is in effect to
14/12/2018 20:36:41 use RECORD extension to try to detect scrolling windows
14/12/2018 20:36:41 (induced by either user keystroke or mouse input).
14/12/2018 20:36:41 If this yields undesired behavior (poor response, painting
14/12/2018 20:36:41 errors, etc) it may be disabled via: '-noscr'
14/12/2018 20:36:41 Also see the -help entry for tuning parameters.
14/12/2018 20:36:41 You can press 3 Alt_L's (Left "Alt" key) in a row to
14/12/2018 20:36:41 repaint the screen, also see the -fixscreen option for
14/12/2018 20:36:41 periodic repaints.
14/12/2018 20:36:41
14/12/2018 20:36:41 XKEYBOARD: number of keysyms per keycode 7 is greater
14/12/2018 20:36:41 than 4 and 51 keysyms are mapped above 4.
14/12/2018 20:36:41 Automatically switching to -xkb mode.
14/12/2018 20:36:41 If this makes the key mapping worse you can
14/12/2018 20:36:41 disable it with the "-noxkb" option.
14/12/2018 20:36:41 Also, remember "-remap DEAD" for accenting characters.
14/12/2018 20:36:41
14/12/2018 20:36:41 X FBPM extension not supported.
14/12/2018 20:36:41 X display is not capable of DPMS.
14/12/2018 20:36:41 --------------------------------------------------------
14/12/2018 20:36:41
14/12/2018 20:36:41 Default visual ID: 0x21
[services.d] stopping services
14/12/2018 20:36:41 Read initial data from X display into framebuffer.
14/12/2018 20:36:41 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/5120
14/12/2018 20:36:41
14/12/2018 20:36:41 X display :0 is 32bpp depth=24 true color
14/12/2018 20:36:41
14/12/2018 20:36:41 Listening for VNC connections on TCP port 5900
14/12/2018 20:36:41
14/12/2018 20:36:41 Xinerama is present and active (e.g. multi-head).
14/12/2018 20:36:41 Xinerama: number of sub-screens: 1
14/12/2018 20:36:41 Xinerama: no blackouts needed (only one sub-screen)
14/12/2018 20:36:41
14/12/2018 20:36:41 fb read rate: 1851 MB/sec
14/12/2018 20:36:41 fast read: reset -wait ms to: 10
14/12/2018 20:36:41 fast read: reset -defer ms to: 10
14/12/2018 20:36:41 The X server says there are 10 mouse buttons.
14/12/2018 20:36:41 screen setup finished.
14/12/2018 20:36:41
The VNC desktop is: 94c38ecbd105:0
PORT=5900
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?
The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval. It should work with any VNC viewer. Try it by running:
x11vnc -ncache 10 ...
One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching
[services.d] stopping app...
[services.d] stopping x11vnc...
caught signal: 15
14/12/2018 20:36:41 deleted 40 tile_row polling images.
[services.d] stopping statusmonitor...
[services.d] stopping nginx...
[services.d] stopping logmonitor...
[services.d] stopping certsmonitor...
[services.d] stopping openbox...
[services.d] stopping xvfb...
[services.d] stopping s6-fdholderd...
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
Hello! Thank you for your nice work!
Could you, please, extend it to ubuntu: focal? I tried to do it on my own, but I got confused.
Trying to run an app using jlesage/baseimage-gui:debian-10. Its trying to write to /dev/null. It doesn't seem to be able to create a temporary file. Any suggestions. I tried running the container under privileged mode that doesn't seem to help.
Hi!! First of all thank you for this awesome image. I use it for various applications and it would be awesome if you can update it to Alpine 3.10 :)
Thank you!
The documentation specifies the ports you can use to access the web interface and the VNC server for the container, but I do not see anything that references the Remote Presence Port is that the container uses when it connects to connect to iDRAC 6.
You can see this value when you log into the iDRAC admin console and navigate to System -> Console/Media -> Configuration.
I changed the Remote Presence Port on my iDRAC6 controller in my Dell R410 Server to port 4900. I forget why I did it - it was a long time ago. The default value is 5900 per Dell's documentation.
Since the Remote Presence Port value is not exposed in your Docker container, when you try to connect via the container, the connection fails.
I changed the Remote Presence Port in iDRAC6 from 4900 back to the default 5900, and I was able to connect using the Docker container!!! This is AWESOME!
Great job! Please update the docs to reflect this as it's pretty important.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.