Sie können ein Skript oder einen komplexeren Parameter im RUN ausführen. Hier ist ein Beispiel von einem Dockerfile ich heruntergeladen habe auf vorher aussehen:
RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
rm -f treeio.zip && cd treeio && pip install -r requirements.pip
Wegen der Verwendung von ‚& &‘, es nur auf die endgültige bekommen ‚installieren pip‘ Befehl, wenn alle vorherigen Befehle hat bestanden.
Da jeder RUN einen neuen COMMIT & (derzeit) einen AUFS-Layer erstellt, werden Sie die Grenzen ausnutzen, wenn Sie zu viele Befehle in der Dockerfile haben, also die RUNs zusammenführen (wenn die Datei stabil ist) kann sehr nützlich sein.
verwandte: http://stackoverflow.com/questions/17891669/docker-command-fails-during-build-but-succeeds-while-executed-within-running-co – trcarden
WORKDIR Befehl als eine mögliche Problemumgehung als auch notiert – trcarden
Keine Workaround, es ist die empfohlene Lösung https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#workdir –