Mon intention est d'exécuter un fichier JAR GUI dans Docker afin que je puisse automatiser les commandes avec xdotool et l'afficher par x11vnc.La commande RUN ne semble pas fonctionner dans Docker
Ceci est mon Dockerfile:
# WEB 0.1
FROM ubuntu:14.04
RUN apt-get update \
&& apt-get install -y \
default-jre \
x11vnc \
xdotool \
xsel \
xvfb \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN DISPLAY=:1.0 \
&& export DISPLAY \
&& mkdir /root/.vnc \
&& x11vnc -storepasswd 1234 /root/.vnc/passwd \
&& Xvfb :1 -screen 0 493x476x8 & \
x11vnc -display :1.0 -usepw -forever &
ENTRYPOINT ["java"]
CMD ["-jar", "/var/bin/program.jar"]
je lance avec:
docker run \
--name program-jar \
-p 5090:5900 \
-v /var/bin/program-jar/:/var/bin/ \
-d program-jar:0.1
Mais dans ce conteneur, il est pas défini $ DISPLAY et ne fonctionne pas x11vnc et Xvfb
[email protected]:/# echo $DISPLAY
[email protected]:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 11.7 0.9 4226956 98588 ? Ssl 14:30 0:01 java -jar /var/bin/program.jar
root 26 0.2 0.0 18188 3268 ? Ss 14:30 0:00 /bin/bash
root 41 0.0 0.0 15580 2044 ? R+ 14:30 0:00 ps aux
[email protected]:/#
(Si j'exécute ces commandes en RUN dans bash, ça marche ... je ne sais pas pourquoi RUN ne semble pas fonctionner il construit docker)
Ainsi, le processus exécuté dans une couche ne s'exécute pas dans des couches enfant? Seul le système de fichiers est hérité? –
oui pour la commande run créer un autre conteneur (couche alias) que l'autre conteneur pourrait utiliser aussi par exemple la couche ubuntu 14 pourrait être utilisée par plusieurs conteneurs mais la dernière couche qui est créée est celle qui est exécutée pour rester en vie (si vous docker l'exécuter en mode détaché) – Hamuel