Mi pregunta es específica de Docker para Windows. La versión que estoy usando es 17.03.1-ce-rc1-win3 (10625) en Windows 10 Pro x64.
Estoy tratando de crear una imagen donde necesito copiar una carpeta en la carpeta "Archivos de programa (x86)" en mi contenedor basado en la imagen microsoft/dotnet-framework:3.5.
Mi Dockerfile es súper simple...
# escape=` FROM microsoft/dotnet-framework:3.5 COPY ["TestFolder", "C:\Program Files (x86)\TestFolder"] Ejecutando docker build , terminé
Step 2/2 : COPY ["TestFolder", "C:\Program Files (x86)\TestFolder"] GetFileAttributesEx C:\Program: The system cannot find the file specified. Parece que Docker dejó de analizar por error el nombre de destino en el primer espacio en blanco. Sin embargo, esta COPY ["<src>", ..."<dest>"] es exactamente la sintaxis para manejar las rutas que contienen espacios en blanco (ref) . Y si uso cualquier otro nombre de carpeta como "Foo Bar", la instrucción COPY simplemente funciona como se esperaba.
Entonces, mi solución actual es usar WORKDIR primero para cambiar el directorio de trabajo a la carpeta "Prog ... (x86)" y luego hacer COPY sin dar explícitamente la ruta de destino completa.
Pero realmente me gustaría saber si hice algo mal con la instrucción COPY.
Gracias.
Tienes que usar barras invertidas dobles dentro de las llaves
FROM microsoft/windowsservercore COPY ["test.txt", "c:\\program files\\WindowsPowerShell\\Modules\\test.txt"]Se interpreta como JSON.
Cambie las barras diagonales inversas con barras diagonales como se muestra a continuación, la barra diagonal inversa doble ya no funciona para mí, pero la siguiente debería hacerlo.
COPY ["TestFolder", "C:/Program Files (x86)/TestFolder"]Cambie las barras diagonales inversas con barras diagonales como se muestra a continuación, la barra diagonal inversa doble ya no funciona para mí, pero la siguiente debería hacerlo.
COPY ["TestFolder", "C:/Program Files (x86)/TestFolder"]