En Windows 10 (cmd), intento copiar un archivo de una subcarpeta que contiene un carácter de espacio en su nombre.
Primero traté de usar comillas:
FROM jfloff/alpine-python:2.7 COPY "Folder 1/File.txt" "Dir 1"Mensaje de error:
error al procesar "\"Carpeta" : final inesperado de la declaración al buscar comillas dobles coincidentes
Formato "JSON" (se salta la primera línea):
COPY ["Folder 1/File.txt" "Dir 1"]Mensaje de error:
no se pudo procesar "[\"Carpeta" : final inesperado de la declaración mientras buscaba comillas dobles coincidentes
Tratando de escapar con una sola barra invertida:
COPY "Folder\ 1/File.txt" "Dir\ 1"Mensaje de error:
no se pudo procesar "\"Carpeta\\" : final inesperado de la declaración mientras buscaba comillas dobles coincidentes
Intentando escapar con una barra invertida doble:
COPY "Folder\\ 1/File.txt" "Dir\\ 1"Mensaje de error:
no se pudo procesar "\"Carpeta\\\\" : final inesperado de la declaración al buscar comillas dobles coincidentes
También probé una sugerencia para usar % 20 en lugar de espacio:
COPY ["Folder%201/File.txt" "Dir%201"]Mensaje de error:
COPY falló: no hay archivo de origen
Reemplazo del carácter de escape:
# escape=` COPY "Folder` 1/File.txt" "Dir 1"Mensaje de error:
no se pudo procesar "\"Folder`" : final inesperado de la declaración mientras buscaba comillas dobles coincidentes
Lo mismo, pero sin comillas:
#escape=` COPY Folder` 1/File.txt Dir` 1Mensaje de error:
COPY falló: stat /var/lib/docker/tmp/docker-builder082039614/ Carpeta : no existe tal archivo o directorio
Método con empaque/desempaque usando un archivo tar (no estoy contento con esa idea).
Debería ser posible, ¿no?
Tal vez puedas usar ARG para ayudarte, así:
archivo acoplable:
FROM jfloff/alpine-python:2.7 ARG src="Folder 1/File.txt" ARG target="Dir 1/" COPY ${src} ${target} Por cierto, se debe agregar un / al final de Dir 1 si realmente desea tratarlo como una carpeta.
Y, el formato JSON también está bien, solo extrañas , debería ser:
FROM jfloff/alpine-python:2.7 COPY ["Folder 1/File.txt", "Dir 1/"]Actualización para sus comentarios:
En la guía oficial , decía:
Al copiar archivos o directorios que contienen caracteres especiales (como [ y ]), debe escapar de esas rutas siguiendo las reglas de Golang para evitar que se traten como un patrón coincidente.
Entonces, para tu caso, debería ser:
FROM jfloff/alpine-python:2.7 ARG src="[[]Folder 1]/__SLIM_TEMPLATE.mm" ARG target="[Folder 1]/" COPY ${src} ${target}O:
FROM jfloff/alpine-python:2.7 COPY ["[[]Folder 1]/__SLIM_TEMPLATE.mm", "[Folder 1]/"]Estoy de acuerdo en que es molesto obtener archivos de la ventana acoplable que tienen caracteres especiales, tuve una experiencia similar y después de horas de intentos y errores, se me ocurrió esta solución simple que ahora uso desde entonces.
tar/comprimir los archivos y luego "docker cp" fácilmente sin tener que preocuparse por docenas de []'".
archivos tar en su máquina contenedora:
con cremallera
o descomprimido
Luego cópielos en directorios locales en su máquina con Windows.
abrir cmd en windows ejecutar
compruebe si los archivos se han transferido en d:/TARGETDIR/