Sie können auch ein lokales Verzeichnis in Ihr Docker-Image einbinden und das Skript in Ihrem .bashrc. Vergessen Sie nicht, dass das Skript aus Funktionen bestehen muss, es sei denn, Sie möchten, dass es auf jeder neuen Shell ausgeführt wird. (Dies ist veraltet, siehe Update-Hinweis.)
Ich verwende diese Lösung, um das Skript außerhalb der Docker-Instanz aktualisieren zu können. Auf diese Weise muss ich das Bild nicht erneut ausführen, wenn Änderungen auftreten. Ich öffne einfach eine neue Shell. (Das erneute Öffnen einer Shell wurde vermieden - siehe Update-Hinweis)
So binden Sie Ihr aktuelles Verzeichnis:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
Jetzt ist Ihr aktuelles Verzeichnis an /scriptsIhre Docker-Instanz gebunden .
(Veraltet) Um Ihre .bashrcÄnderungen zu speichern , schreiben Sie Ihr Arbeitsimage mit folgendem Befehl fest:
docker commit $container_id $my_docker_build
Aktualisieren
Um das Problem zu lösen und für jede Änderung eine neue Shell zu öffnen, gehe ich jetzt wie folgt vor:
In der Docker-Datei selbst füge ich hinzu RUN echo "/scripts/bashrc" > /root/.bashrc". Innerhalb zshrcexportiere ich das Skriptverzeichnis in den Pfad. Das Skriptverzeichnis enthält jetzt mehrere Dateien anstelle einer. Jetzt kann ich alle Skripte direkt aufrufen, ohne bei jeder Änderung eine Sub-Shell öffnen zu müssen.
Übrigens können Sie die Verlaufsdatei auch außerhalb Ihres Containers definieren. Auf diese Weise ist es nicht mehr erforderlich, eine Bash-Änderung vorzunehmen.
WORKDIRund verwendenCMD?