Cambia comando directory in Docker?


214

Nella finestra mobile voglio fare questo:

git clone XYZ
cd XYZ
make XYZ

Tuttavia, poiché non esiste alcun comando cd, devo passare sempre il percorso completo (crea XYZ / fullpath). Qualche buona soluzione per questo?



6
Il comando WORKDIR è anche considerato una possibile soluzione alternativa
trcarden il

1
Non una soluzione alternativa, è la soluzione consigliata docs.docker.com/engine/userguide/eng-image/…
John John Pichler,

Risposte:


151

È possibile eseguire uno script o un parametro più complesso su RUN. Ecco un esempio da un file Docker che ho scaricato per esaminare in precedenza:

RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
    rm -f treeio.zip && cd treeio && pip install -r requirements.pip

A causa dell'uso di '&&', arriverà al comando finale 'pip install' solo se tutti i comandi precedenti sono riusciti.

Infatti, poiché ogni RUN crea un nuovo commit e (attualmente) un livello AUFS, se hai troppi comandi nel Dockerfile, utilizzerai i limiti, quindi unire i RUN (quando il file è stabile) può essere molto cosa utile da fare.


98
Nel caso ti stia chiedendo, l'effetto cddell'unica dura per il RUNcomando corrente . Il prossimo RUNinizierà dalla corrente WORKDIR.
Ritchie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.