相対パスを使用する場合、Docker ボリュームに無効な文字があります 質問する

相対パスを使用する場合、Docker ボリュームに無効な文字があります 質問する

私は、bash スクリプトを介して実行される docker コンテナを受け取りました。コンテナは PHP Web アプリをセットアップし、その後、他のスクリプトやコンテナを呼び出します。他の人には問題なく動作するようですが、私の場合はエラーが発生します。

これがコードです

sudo docker run -d \
   --name eluci \
   -v ./config/eluci.settings:/mnt/eluci.settings \
   -v ./config/elucid.log4j.settings.xml:/mnt/eluci.log4j.settings.xml \
   --link eluci-database:eluci-database \
   /opt/eluci/run_eluci.sh

これはエラーです

docker: Error response from daemon: create ./config/eluci.settings: 
"./config/eluci.settings" includes invalid characters for a local
volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to 
pass a host directory, use absolute path.

Windows 7 ホスト上の VirtualBox を使用して CentOS VM 上で Docker を実行しています。

グーグルで調べたところ、マウントに関係しているようですが、設定が壊れたり、別の Docker コンテナで依存されている場合に備えて、変更はしたくありません。ビルド プロセスの残りを調整するために、実行する bash スクリプトがまだいくつか残っています。Docker の初心者なので、困惑しています。

ベストアンサー1

このコマンドはdocker run -v /path/to/dir相対パスを受け入れないので、絶対パスを指定する必要があります。コマンドは次のように書き直すことができます。

sudo docker run -d \
   --name eluci \
   -v "/$(pwd)/config/eluci.settings:/mnt/eluci.settings" \
   -v "/$(pwd)/config/elucid.log4j.settings.xml:/mnt/eluci.log4j.settings.xml" \
   --link eluci-database:eluci-database \
   /opt/eluci/run_eluci.sh

おすすめ記事