3

Docker コンテナーで WordPress を実行しようとすると、フォルダーの所有権の問題が発生します。のようなフォルダーはルートによって所有されwp-contentthemesいるため、Web インターフェイスからテーマやプラグインをインストールできません。

目標

  • Docker で WordPress を実行します。
  • git リポジトリ (私たちが所有) からテーマを取得します。
  • 公式の Docker イメージから WP-CLI を実行できる ( wordpress:cli)。
  • Web インターフェイスからテーマとプラグインをインストールできる。
  • 下にあるすべてのファイルとフォルダーを(uid 33)/var/www/htmlが所有するようにします。www-data

スペック

  • Docker バージョン 18.09.5、ビルド e8ff056
  • docker-compose バージョン 1.24.0、ビルド 0aa59064
  • サービスごとに単一のコンテナ インスタンス - kubernetes、swarm、stack などはありません。
  • じぶんのdocker-compose.yml
  • dockerfile(gitリポジトリからコピー):

FROM wordpress:5

COPY --chown=33 ./ /var/www/html/wp-content/themes/theme/

ボリューム

dockerfile でボリュームを宣言しません。上記の 2 行だけで、他には何もありません。実際、このイメージは、フォルダーを WordPress イメージにコピーするためだけに存在します。ただし、WordPress イメージ (私のイメージの派生元) は、dockerfile でボリュームを宣言しています。

docker-compose ファイルでボリュームを宣言していますが、それらを省略しても問題は解決しません

結果

ファイルとフォルダの所有権...


アップデート

Docker ビルドのステップでいくつかの問題が発生してCOPYいますが、何が原因かわかりません。

に変更dockerfileしました

FROM alpine
COPY ./ /var/www/html/wp-content/themes/theme/
RUN chown -R 33:33 /var/www/html
RUN ls -n /var/www/html

アルパインからビルドする場合、uid33が所有者です。

Step 4/4 : RUN ls -n /var/www/html
 ---> Running in e9850fa85800
total 4
drwxr-xr-x    1 33       33            4096 Apr 12 19:34 wp-content

最初の行を に変更しますFROM wordpressrootは所有者です:

Step 4/4 : RUN ls -n /var/www/html
 ---> Running in 2810cc37aaba
total 4
drwxr-xr-x. 3 0 0 4096 Apr 12 19:38 wp-content

必要な結果 (つまり、(uid 33)/var/www/html/wp-content/themes/theme/が所有するすべてのファイルとフォルダーのテーマ ファイル) を取得するにはどうすればよいですか?www-data

4

1 に答える 1