web-dev-qa-db-fra.com

La génération Docker Windows échoue avec l'erreur: «Le système ne trouve pas le chemin spécifié»

J'ai essayé de créer une jonction de répertoire sur Docker Windows pour créer 8.3. Mais il a échoué avec le message d'erreur ci-dessous.

D:\data\docker\sample>docker build -t sample .
Sending build context to Docker daemon  1.272GB
Step 1/4 : FROM Microsoft/windowsservercore
 ---> 2cddde20d95d
Step 2/4 : RUN fsutil.exe behavior set disable8dot3 0
 ---> Running in ec6e7cc09ec6
The registry state is now: 0 (Enable 8dot3 name creation on all volumes).
 ---> 53805bc21858
Removing intermediate container ec6e7cc09ec6
Step 3/4 : RUN mklink /J "C:\PROGRA~1" "C:\Program Files"
 ---> Running in 2116f2070e6a
Junction created for C:\PROGRA~1 <<===>> C:\Program Files
re-exec error: exit status 1: output: time="2017-10-03T16:15:54+09:00" level=error msg="hcsshim::ImportLayer failed in Win32: The system cannot find the path specified. (0x3) layerId=\\?\C:\ProgramData\Docker\windowsfilter\5234d5f7cd7c2669db1818d9227a4be2822eeb72fc30071a495de78cd578b9f3 flavour=1 folder=C:\WINDOWS\TEMP\hcs088640839"
hcsshim::ImportLayer failed in Win32: The system cannot find the path specified. (0x3) layerId=\\?\C:\ProgramData\Docker\windowsfilter\5234d5f7cd7c2669db1818d9227a4be2822eeb72fc30071a495de78cd578b9f3 flavour=1 folder=C:\WINDOWS\TEMP\hcs088640839

Le Dockerfile était ci-dessous:

FROM Microsoft/windowsservercore
RUN fsutil.exe behavior set disable8dot3 0
RUN mklink /J "C:\PROGRA~1" "C:\Program Files"
CMD [ "powershell" ]

Comment puis-je créer un répertoire juction sur Docker Windows?

13
nodchip

Je suppose que votre problème n'est pas lié à la création d'une jonction d'annuaire (notez que votre build a terminé cette étape), mais qu'il est lié au dépassement de la taille de base des conteneurs Docker (je vois que vous tirez de windowsservercore, qui est d'environ 10 Go, et navigation sur le Web me dit que la taille de base du conteneur par défaut est 10 Go).

Essayez de changer la taille à 20 Go dans la configuration du démon docker en ajoutant ce json:

"storage-opts": [
  "size=20G"
]

daemon config

Je rencontrais le même message d'erreur, j'ai essayé toutes sortes de dépannage et l'ai résolu avec ce paramètre de démon.

19
jschmitter

Pour Docker Enterprise, cela peut être configuré ici C:\ProgramData\docker\config\daemon.json

"storage-opts":["size=20G"]

Si ce fichier n'existe pas, créez-le

Lien ici

0
Lord Darth Vader

vérifiez si le projet est en cours d'exécution ou non! s'il est en cours d'exécution, le terminer. puis vérifiez à nouveau la commande

0
iDeveloper

Je n'ai pas pu résoudre ce problème avec d'autres méthodes; ce qui a fonctionné pour moi a été la suppression et la ré-extraction de l'image de base. Il est donc apparemment possible d'obtenir cette erreur à partir d'une image corrompue.

0
cowlinator