tag remove images hub example dockers compose docker

remove - Docker: RUN cd... no funciona como se esperaba



docker-compose (2)

El siguiente 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 docker build)

parece que RUN cd tmp123 no tiene efecto

por qué ?


En realidad se espera.

Un dockerfile no es más que un contenedor de 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 ejecuta, genera un nuevo contenedor y, por lo tanto, el pwd es ''/''.

Si lo desea, puede abrir un problema en github para agregar una instrucción CHDIR a Dockerfile.


Quizás puedas intentar esto; No estoy seguro y no puedo probarlo. Si no funciona, espero que no disminuya la votación.

Sólo:

RUN ''cd tmp123 ; pwd''

En lugar de

RUN cd tmp123 RUN pwd