Sie können ein Skript oder einen komplexeren Parameter für den RUN ausführen. Hier ist ein Beispiel aus einer Docker-Datei, die ich heruntergeladen habe, um sie mir zuvor anzusehen:
RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
rm -f treeio.zip && cd treeio && pip install -r requirements.pip
Aufgrund der Verwendung von '&&' wird der endgültige Befehl 'pip install' nur erreicht, wenn alle vorherigen Befehle erfolgreich waren.
Da jeder RUN ein neues Commit und (derzeit) eine AUFS-Ebene erstellt, verbrauchen Sie die Grenzwerte, wenn Sie zu viele Befehle in der Docker-Datei haben. Daher kann das Zusammenführen der RUNs (wenn die Datei stabil ist) sehr schwierig sein nützliche Sache zu tun.
Falls Sie sich fragen, bleibt die Wirkung der cdeinzigen für den aktuellen RUNBefehl bestehen. Der nächste RUNbeginnt mit dem aktuellen WORKDIR.
Ritchie
530
Verwenden Sie WORKDIR, um in ein anderes Verzeichnis zu wechseln . Alle Befehle RUN, CMD und ENTRYPOINT nach WORKDIR werden in diesem Verzeichnis ausgeführt.
Antworten:
Sie können ein Skript oder einen komplexeren Parameter für den RUN ausführen. Hier ist ein Beispiel aus einer Docker-Datei, die ich heruntergeladen habe, um sie mir zuvor anzusehen:
Aufgrund der Verwendung von '&&' wird der endgültige Befehl 'pip install' nur erreicht, wenn alle vorherigen Befehle erfolgreich waren.
Da jeder RUN ein neues Commit und (derzeit) eine AUFS-Ebene erstellt, verbrauchen Sie die Grenzwerte, wenn Sie zu viele Befehle in der Docker-Datei haben. Daher kann das Zusammenführen der RUNs (wenn die Datei stabil ist) sehr schwierig sein nützliche Sache zu tun.
quelle
cd
einzigen für den aktuellenRUN
Befehl bestehen. Der nächsteRUN
beginnt mit dem aktuellenWORKDIR
.Verwenden Sie WORKDIR, um in ein anderes Verzeichnis zu wechseln . Alle Befehle RUN, CMD und ENTRYPOINT nach WORKDIR werden in diesem Verzeichnis ausgeführt.
quelle
quelle