Docker: EJECUTAR cd not no funciona como se esperaba [duplicar]
Esta pregunta ya tiene una respuesta aquí:
El siguiente archivo Dockerfile:
FROM ubuntu:12.10 RUN mkdir tmp123 RUN cd tmp123 RUN pwd
Tiene la salida :
Uploading context 10240 bytes Step 1 : FROM ubuntu:12.10 ---> b750fe79269d Step 2 : RUN mkdir tmp123 ---> Running in d2afac8a11b0 ---> 51e2bbbb5513 Step 3 : RUN cd tmp123 ---> Running in 4762147b207c ---> 644801121b92 Step 4 : RUN pwd ---> Running in 3ed1c0f1049d / ---> eee62a068585
Cuando se construye (comando de compilación de docker)
Parece que ejecutar cd tmp123 no tiene efecto
¿Por qué ?
30
2 answers
En realidad se espera.
Un dockerfile no es más que un contenedor en docker run + docker commit.
FROM ubuntu:12.10
RUN mkdir tmp123
RUN cd tmp123
RUN pwd
Es lo mismo que hacer:
CID=$(docker run ubuntu:12.10 mkdir tmp123); ID=$(docker commit $CID)
CID=$(docker run $ID cd tmp123); ID=$(docker commit $CID)
CID=$(docker run $ID pwd); ID=$(docker commit $CID)
Cada vez que se EJECUTA, se genera un nuevo contenedor y, por lo tanto, el pwd es '/'.
Si te apetece, puedes abrir un problema en github para añadir una instrucción CHDIR al Dockerfile.
59
Author: creack,
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
2013-07-26 22:52:07
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
2013-07-26 22:52:07
Tal vez puedas probar esto; no estoy seguro y no puedo probarlo. Si no funciona, espero que no downvote.
Solo:
RUN 'cd tmp123 ; pwd'
En lugar de
RUN cd tmp123
RUN pwd
10
Author: Lidong Guo,
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-18 00:03:58
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-18 00:03:58