Table of Contents

Ubuntu: Mise en oeuvre de docker-wine

Construire et exécuter localement docker-wine

git clone https://github.com/scottyhardy/docker-wine.git
make
make run
docker-wine --local

Volume winehome du conteneur

Lorsque l'image de docker-wine est instanciée avec le script docker-wine, le contenu du dossier /home/wineuser est copié dans le conteneur de volume winehome lors de l'instanciation du conteneur wine.

L'utilisation d'un volume de conteneur permet au conteneur wine de rester inchangé et de pouvoir être retiré en toute sécurité après chaque exécution avec docker run --rm .... Tous les environnements utilisateur créés avec docker-wine seront stockés séparément et les données de l'utilisateur persisteront tant que le volume n'est pas enlevé. Cela permet effectivement à l'image de docker-wine d'être remplacée par une version plus récente à tout moment.

On peut créer manuellement le volume de conteneur winehome en lançant:

docker volume create winehome

Lorsqu'on ne veut pas du volume de conteneur, on peut le supprimer en utilisant:

docker volume rm winehome

Le script ENTRYPOINT

Le paramètre ENTRYPOINT défini pour l'image docker-wine est simplement /usr/bin/entrypoint. Ce script est essentiel pour garantir que le fichier .Xauthority de l'utilisateur est copié de /root/.Xauthority vers /home/wineuser/.Xauthority et que la propriété du fichier est définie sur wineuser chaque fois que le conteneur est instancié.

Les arguments spécifiés après docker-wine sont également transmis à ce script pour garantir qu'il est exécuté en tant que wineuser.

Par exemple:

docker-wine wine notepad.exe

Les arguments wine notepad.exe sont interprétés par le conteneur wine pour remplacer la directive CMD, qui sinon exécute simplement /bin/bash pour donner une session bash interactive en tant que wineuser dans le conteneur.

Utilisation de l'image docker-wine dans un fichier Docker

Pourutiliser scottyhardy/docker-wine comme base pour une autre image Docker, il faut configurer le même point d'entrée pour s'assurer de toujours exécuter en tant que wineuser et que les graphiques X11 continuent de fonctionner en ajoutant les éléments suivants au DockerFile:

FROM scottyhardy/docker-wine:latest
... <your>
ENTRYPOINT ["/usr/bin/entrypoint"]

Ou si on préfére exécuter un programme par défaut, on peut utiliser:

ENTRYPOINT ["/usr/bin/entrypoint", "wine", "notepad.exe"]

Ou si pour exécuter un programme par défaut tout en pouvant le remplacer facilement, on peut utiliser:

ENTRYPOINT ["/usr/bin/entrypoint"]
CMD ["wine", "notepad.exe"]