Docker seguir enlace simbólico fuera del contexto
Otra pregunta de enlace simbólico de Docker. Tengo un montón de archivos que quiero copiar a todas mis compilaciones de Docker. Mi estructura dir es:
parent_dir
- common_files
- file.txt
- dir1
- Dockerfile
- symlink -> ../common_files
En el ejemplo anterior, quiero file.txt para ser copiado cuando docker construir dentro de dir1. Pero no quiero mantener múltiples copias del archivo.txt. Para este enlace, a partir de la versión 0.10 de docker , la compilación de docker debe
Siga los enlaces simbólicos dentro de la raíz del contenedor para AGREGAR instrucciones de compilación.
Pero consigo no hay tal archivo o directorio cuando compilo con cualquiera de estas líneas en mi Dockerfile:
ADD symlink /path/dirname
o
ADD symlink/file.txt /path/file.txt
La opción de montaje NO lo resolverá para mí (multiplataforma...).
Lo intenté tar -czh . | docker build -t
sin éxito.
Hay una manera de hacer que Docker siga el enlace simbólico y copie el archivo/common_files.txt en el contenedor construido?
3 answers
Eso no es posible y no se implementará. Por favor, echa un vistazo a la discusión sobre el tema github #1676:
No permitimos esto porque no es repetible. Un enlace simbólico en su máquina no es lo mismo que mi máquina y el mismo Dockerfile produciría dos resultados diferentes. También tener enlaces simbólicos a/etc / paasswd causaría problemas porque enlazaría los archivos host y no sus archivos locales.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-07 19:25:19
Para cualquier otra persona con este problema, por favor vea este enlace. Personalmente opté por la solución" construir una imagen base común " y funciona de manera brillante.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-23 06:41:46
Una posibilidad es ejecutar la compilación en el directorio padre, con:
$ docker build [tags...] -f dir1/Dockerfile .
(O equivalente, en el directorio hijo,)
$ docker build [tags...] -f Dockerfile ..
El Dockerfile tendrá que ser configurado para copiar/agregar con las rutas apropiadas. Dependiendo de su configuración, es posible que desee omitir un .dockerignore
en el padre
cosas que no quieres poner en el contexto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-24 20:21:16