ローカルディレクトリをDockerイメージにマウントし、でスクリプトを入手することもできます.bashrc
。新しいシェルごとにスクリプトを実行する場合を除いて、スクリプトは関数で構成されている必要があることを忘れないでください。(これは古くなっています。更新通知を参照してください。)
このソリューションを使用して、Dockerインスタンスの外部でスクリプトを更新できるようにしています。このようにして、変更が発生した場合にイメージを再実行する必要はなく、新しいシェルを開くだけです。(シェルを再び開くことを取り除きました-更新通知を参照してください)
現在のディレクトリをバインドする方法は次のとおりです。
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
これで、現在のディレクトリがにバインドされます /scripts
Dockerインスタンスにます。
(古い).bashrc
変更を保存するには、次のコマンドを使用して作業イメージをコミットします。
docker commit $container_id $my_docker_build
更新
この問題を解決して、変更ごとに新しいシェルを開くために、次のことを行います。
dockerfile自体にを追加しRUN echo "/scripts/bashrc" > /root/.bashrc"
ます。内部zshrc
は、scriptsディレクトリをパスにエクスポートします。スクリプトディレクトリには、1つではなく複数のファイルが含まれるようになりました。これで、変更のたびにサブシェルを開かなくても、すべてのスクリプトを直接呼び出すことができます。
ところで、コンテナの外でも履歴ファイルを定義できます。このようにして、bashの変更をコミットする必要がなくなりました。
WORKDIR
とCMD
?