He leído http://docs.docker.com/engine/reference/builder/#add sin embargo, encontré un problema. Quiero copiar el directorio local go
a la ventana acoplable/user/local/
Lo intenté:
ADD go /usr/local/
y:
ADD /go/ /usr/local/
además:
RUN chmod 0755 /usr/local/go/src/make.bash
Sin embargo, veo el siguiente mensaje de error /usr/local/go/src/make.bash: No such file or directory
pero el go
directorio local contiene make.bash
.
ADD
capa para cada directorio de origen)?$HOME
o~
o cualquier otra variable de shell no funcionará. Lo digo porque gasté bastante tratando de resolver esto de lo que me gustaría admitir a pesar de que es obvio para la mayoría.COPY
simplemente comportarse asícp
? En cambio, debe haber una policía adicional sobre cómo funciona.De hecho
ADD go /usr/local/
agregará el contenido de lago
carpeta y no la carpeta en sí, puede usar la solución Thomasleveil o si eso no funcionó por alguna razón, puede cambiarWORKDIR
para/usr/local/
luego agregar su directorio como:o
Pero si desea agregar varias carpetas, será molesto agregarlas así, la única solución por ahora, como lo veo desde mi problema actual, es usar
COPY . .
y excluir todos los directorios y archivos no deseados.dockerignore
, digamos que tengo carpetas y archivos :y quiero agregar
src assets package.json justforfun go
así:en Dockerfile:
en el archivo .dockerignore:
O para más diversión (o si te gusta confundir a más personas y hacerlas sufrir también: P) puede ser:
De esta forma, ignora todo, pero excluye lo que desea copiar o agregar solo de la "lista de ignorados".
Es una respuesta tardía, pero agrega más formas de hacer lo mismo cubriendo incluso más casos.
fuente
Puedes usar COPY. Debe especificar el directorio explícitamente. No se creará solo
Referencia: referencia de Docker CP
fuente