にコピーされたときにコピーされていないディレクトリのパーミッション私Dockerfileの関連する部分である:私のドッキングウィンドウ-コンでドッカー:ファイルはここにボリューム
RUN cd /path/to/future/volume \
&& if [ ! -d "init_data" ]; then tar xvzf init_data.tar.gz; fi \
&& chmod 775 init_data
、私は上/パスマッピングされた名前のボリュームを使用しています/ to/future/volume(my-volume:/ path/to/future/volume)ので、Dockerは/ path/to/future/volumeからホストディレクトリにすべてのファイルをコピーすることになっています。
コピー自体は機能します(そして、すべてのユーザーとグループの所有権は良好です)。chmodを除く775 init_dataは適用されません。
ボリュームを作成した後、コンテナとボリューム内で動作する "chmod 775 init_data"がコンテナに入っていますが、ビルド時にこの書き込みパーミッションをグループに設定する必要があります。
なぜこのようなことが起こり、回避策として何ができますか?
ボリュームを最初に作成した後でDockerfileにchmodを追加しましたか? – BMitch
さて、 "docker-up up -d"の前にボリュームを削除しようとしましたが、正しい権限がボリューム内のinit_dataに適用されています。私は正確なコピー/上書き/マージのルールについては、既存の名前付きボリュームを使用してコンテナを実行するとき(おそらく、ボリュームが既に存在するときにすべてのコピーがありますか? – Tristan
これはちょうど正しいもので、内部にデータがあるボリュームが存在した後はボリュームがありません。ボリュームが完全に空の場合、私はそれも初期化すると信じていますが、ボリュームが存在しない場合は確かです。 – BMitch