web-dev-qa-db-ja.com

「ディレクトリを作成できません...そのようなファイルまたはディレクトリはありません」

Dockerfileを実行すると、コマンドRUN cp -rf roundcubemail-1.2.3/. /var/www/html/が実行され、次のエラーが発生します。

cp: cannot create directory '/var/www/html/': No such file or directory
ERROR: Service 'mailserver' failed to build: The command '/bin/sh -c cp -rf 
roundcubemail-1.2.3/. /var/www/html/' returned a non-zero code: 1

そのエラーは、そのディレクトリでコマンドを実行すると発生します。権限を775に変更しましたが、何も変更されませんでした。

RUN cp 775 -rf roundcubemail-1.2.3/. /var/www/html/に775を追加すると、エラーは「is not a directory」に変わります。

2
Ora nge

親ディレクトリ(この場合はcp)が存在しない場合、wwwはそのエラーを報告します。

$ mkdir src dest
$ touch src/file
$ cp -r src dest/www/html/
cp: cannot create directory ‘dest/www/html/’: No such file or directory

とは対照的に:

$ mkdir -p dest/www/html
$ cp -r src dest/www/html/
$ find dest
dest
dest/www
dest/www/html
dest/www/html/src
dest/www/html/src/file

また、私はあなたを信じています:

RUN cp 775 -rf roundcubemail-1.2.3/. /var/www/html/

commandは、コピーされたファイルに設定するMODEを受け入れるinstall -mコマンドへの参照である可能性があります。一方、cpは単にソースディレクトリのリストを期待しているため、このコマンドは/var/www/html/にコピーする3つのファイル/ディレクトリを探しています。

  1. 755
  2. -rf
  3. roundcubemail-1.2.3

この特定の問題を解決するには、これをDockerfileに追加することをお勧めします。

RUN mkdir -p /var/www/html
2
Jeff Schaller