Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/01/2021, à 20:59

tilt2

Réaliser un développement sur une application graphique via docker

Bonjour

Mon but est de tenter faire des développements sur tellico.
Cependant, je souhaite garder mon système le plus stable possible.
Je tente donc de faire mon développement en utilisant un container docker.

En guise de test, j'ai créé une première image avec l'application tellico telle quelle est disponible des dépôts.

FROM     ubuntu:bionic

MAINTAINER test_tellico "test@noreply.com"

ENV DEBIAN_FRONTEND noninteractive

# Depots, mises a jour et installs

RUN (apt-get update && apt-get upgrade -y -q && apt-get dist-upgrade -y -q && apt-get -y -q autoclean && apt-get -y -q autoremove)


RUN apt-get install kubuntu-desktop -y

RUN apt-get install  tellico  -y

Pour utiliser le serveur X de la machine hôte, la création du conteneur se fait a l'aide de la commande suivante.

docker run -ti --net=host -e DISPLAY -v /tmp/.X11-unix tellico /bin/bash

Après déclaration du server X du PC hôte du conteneur:

xauth add nom_de_lhote/unix:0  MIT-MAGIC-COOKIE-1  eb1cb752gdad6a0815aa9d88502e483

Le lancement d'une application graphique (xclok) se réalise correctement.

Mais le lancement de tellico échoue :

root@nom_de_lhote:/#tellico
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
dbus[11]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = tellico path = /usr/bin pid = 11
KCrash: Arguments: /usr/bin/tellico 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit
sock_file=/tmp/runtime-root/kdeinit5__0
Warning: connect() failed: : No such file or directory
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi directly
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
found lsb_release
Using /proc to determine executable path
Executable is: "/usr/bin/tellico"
Executable exists: true
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Enabling drkonqi crash catching
dbus[19]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
Killed
root@tgrandje-Latitude-E5430-non-vPro:/# Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='ANSI_X3.4-1968'>
BrokenPipeError: [Errno 32] Broken pipe
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = drkonqi path = /usr/lib/x86_64-linux-gnu/libexec pid = 19
KCrash: Arguments: /usr/lib/x86_64-linux-gnu/libexec/drkonqi --appname tellico --apppath /usr/bin --signal 6 --pid 11 --appversion 3.1.2 --programname Tellico --bugaddress submit@bugs.kde.org --startupid 0 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit
sock_file=/tmp/runtime-root/kdeinit5__0
Warning: connect() failed: : No such file or directory
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi directly
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
found lsb_release
Using /proc to determine executable path
Executable is: "/usr/lib/x86_64-linux-gnu/libexec/drkonqi"
Executable exists: true
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
dbus[24]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='ANSI_X3.4-1968'>
BrokenPipeError: [Errno 32] Broken pipe
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = drkonqi path = /usr/lib/x86_64-linux-gnu/libexec pid = 24
KCrash: Arguments: /usr/lib/x86_64-linux-gnu/libexec/drkonqi --appname drkonqi --apppath /usr/lib/x86_64-linux-gnu/libexec --signal 6 --pid 19 --startupid 0 

Dans les conteneurs docker, ni systemctl, ni le service dbus ne sont installés.
C'est a partir de ce point que je ne comprends plus.
Les applications peuvent normalement se lancer en mode standalone (c'est à dire sans connecter a un bus de message)


Professionnellement, j'ai un autre PC sous Windows 10 avec l'autorisation d'utiliser WSL (Windows Subsystem Linux)
Dans une image WSL basé sur ubuntu (lancé via Mobaxtem qui gère un serveur X), l'installation et le lancement de tellico s'effectue correctement.
Dans ce cas non plus, ni systemctl , ni dbus d'installé.
Donc tellico se lance bien en mode standalone.

Je ne comprends donc pas l’erreur obtenu dans le conteneur docker.

Est-ce que quelqu'un a une idée  ?

Hors ligne