私は、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