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 /scripts
Ihre 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 zshrc
exportiere 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.
WORKDIR
und verwendenCMD
?