L'image Docker (basée sur Windows) inclut un répertoire d'application à C:\App
. À l'intérieur de ce répertoire résident plusieurs sous-dossiers et fichiers, dont un fichier de commandes appelé process.bat
. Le Dockerfile (utilisé pour construire l'image) se termine comme ceci:
ENTRYPOINT [ "C:\\App\\process.bat" ]
Lorsque j'instancie cette image à l'aide de la commande: docker run company/app
, le fichier de commandes s'exécute, mais il échoue au point où d'autres fichiers sous C:\App
sont référencés. Essentiellement, le répertoire de travail est toujours C:\
depuis le point d'entrée du conteneur Docker.
Existe-t-il un moyen de définir le répertoire de travail dans le Dockerfile? Il existe deux alternatives:
-w C:\App
à la course du dockercd /D C:\App
Mais existe-t-il un moyen de spécifier le répertoire de travail dans le Dockerfile?
WORKDIR /App
est une commande que vous pouvez utiliser dans votre dockerfile pour changer le répertoire de travail.
Si /App
est un volume monté, vous devez spécifier VOLUME /App
avant WORKDIR
pour l'utiliser avec ENTRYPOINT
, sinon il ne sera pas vu par ENTRYPOINT
:
VOLUME ["/App"]
WORKDIR /App
ENTRYPOINT ["sh", "start.sh"]
Lequel start.sh
est dans /App
répertoire.