質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

docker-composeでwordpressコンテナのvolumeを永続化するとwordpressが英語版になる理由

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 589

atimot

score 8

docker-composeで簡単にwordpressのテーマ開発環境を構築しようと思い下記のようなdocker-compose.ymlファイルを作成しました。

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - ./wp-content:/var/www/html/wp-content
     ports:
       - "8080:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

このようにwordpressコンテナのボリュームを永続化すると、wordpressの初期設定時に言語を選択する画面がスキップされ英語のままサイト設定画面になってしまいます。
しかし、wordpressコンテナのボーリューム部分をコメントアウトして、再構築したところ、言語選択画面が表示され、日本語でwordpress環境を構築することができました。

なぜ、このような現象が起こってしまうか分からず、教えていただきたいです。
よろしくお願いいたします。

Docker version 19.03.12, build 48a66213fe
docker-compose version 1.26.2, build eefe0d31

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

WordPress の公式イメージは最初、
/var/www/html は空になっており、
ENTRYPOINT の処理で
WordPress のコードがドキュメントルートにデプロイされる仕組みになっています
参考: wordpress/docker-entrypoint.sh at master · docker-library/wordpress

volumes:
       - db_data:/var/lib/mysql

上記の bind マウントを行うと、docker-compose up を行うと、
デプロイに失敗します:

$ docker-compose up
Creating network "test-docker-compose_default" with the default driver
Creating volume "test-docker-compose_db_data" with default driver
Creating test-docker-compose_db_1 ... done
Creating test-docker-compose_wordpress_1 ... done
Attaching to test-docker-compose_db_1, test-docker-compose_wordpress_1
db_1         | 2020-07-19 03:33:17+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian9 started.
db_1         | 2020-07-19 03:33:17+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1         | 2020-07-19 03:33:17+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian9 started.
db_1         | 2020-07-19 03:33:17+00:00 [Note] [Entrypoint]: Initializing database files
db_1         | 2020-07-19T03:33:17.556858Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1         | 2020-07-19T03:33:17.844306Z 0 [Warning] InnoDB: New log files created, LSN=45790
db_1         | 2020-07-19T03:33:17.925250Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
wordpress_1  | WordPress not found in /var/www/html - copying now...
wordpress_1  | WARNING: /var/www/html is not empty! (copying anyhow)
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
db_1         | 2020-07-19T03:33:17.961174Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9613a600-c970-11ea-853e-0242ac1c0002.
db_1         | 2020-07-19T03:33:17.973753Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen/screenshot.png: Cannot open: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen/page.php: Cannot open: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen/footer.php: Cannot open: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen/rtl.css: Cannot open: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen: Cannot mkdir: No such file or directory
wordpress_1  | tar: ./wp-content/themes/twentyseventeen/search.php: Cannot open: No such file or directory
db_1         | 2020-07-19T03:33:20.264375Z 0 [Warning] CA certificate ca.pem is self signed.
db_1         | 2020-07-19T03:33:20.932808Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
wordpress_1  | tar: Exiting with failure status due to previous errors

次のように bind マウントを変更し:

     volumes:
       - ./wp-content:/var/www/html/wp-content

     volumes:
       - ./wordpress:/var/www/html

且つ、ホスト側にディレクトリーを作っていない状態で
docker-compose up すると、言語選択が表示されます

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/19 21:01

    なるほどです。githubなどにソースが公開されているのですね。とても勉強になります。
    コードをみて勉強になるのももちろんですが、こういった疑問があったときに何を見れば良いのか、も勉強になりました。ありがとうございます。
    また、前回の質問もわざわざ訂正してくださり、ありがとうございました。
    今回の疑問についてよく理解することができました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る