git clone https://github.com/scottyhardy/docker-wine.git
make
make run
docker-wine
avec le commutateur --local
:docker-wine --local
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 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.
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"]