実行中のdockerコンテナー内のテキストファイルにテキスト行を書き込みたいです。これまでに試したことがあります:
docker exec -d app_$i eval echo "server.url=$server_url" >> /home/app/.app/app.config
応答:
/home/user/.app/app.config: No such file or directory
2回目の試行:
cfg_add="echo 'server.url=$server_url' >> /home/user/.app/app.config"
docker exec -i app_$i eval $cfg_add
応答:
exec: "eval": executable file not found in $PATH
何か案は?
さらに:
コンテナの外部からテキストを記述する必要がある場合、これも機能します。
(docker exec -i container sh -c "cat > c.sql") < c.sql
これにより、入力がコンテナにパイプされます。もちろん、これはプレーンテキスト(ファイルなし)でも機能します。 -t
パラメーターを省略することが重要です。
https://github.com/docker/docker/pull/9537 を参照してください
更新(ファイルの一部ではなく、ファイルをコピーする必要がある場合):
Docker v17.03には、ローカルfsとコンテナ間でコピーするdocker cp
があります。 https://docs.docker.com/engine/reference/commandline/cp/#usage