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

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

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

2972閲覧

Docker ComposeでWordPressの複数サイトをvirtual hostで管理したい

yusk24

総合スコア14

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

1クリップ

投稿2019/05/08 12:52

環境はGithubに上げておきました。
Githubはこちら

やったこと

jwilder/nginx-proxyのイメージでNginxのプロキシからvirtual hostでwordpressとmysqlのDBを管理しようとしました。

  • /etc/hostsにvirtual hostの設定を記述しました。
# Docker 127.0.0.1 app1.local 127.0.0.1 app2.local

1つのコンテナを立ち上げるだけであれば問題ないですが、複数同時に立ち上げるとバグります。
エラーは、

Error establishing a database connection

という画面が出てきます。
たまたま表示できた画面もapp1とapp2でも同じものが表示されます。

参考

この記事を参考に作らせていただきました。
VPSにdockerで複数サイトをホスティングするには?

ひとこと

どうかよろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決できました。
DBを一つにしてwordpressのdb名をapp1とapp2で分けたことによってうまくいきました。

できなかった理由は、DB2つの時でhost名が同じ名前で競合していたことです。
host名がmysql以外設定できないエラーもあったのですが、おそらくwordpressのコンテナのデフォルトのhost名がmysqlになっていただけでenvironmentで指定することでおそらく行けるようになります。(これは試していないですが)

助けてくださった方ありがとうございます!

投稿2019/05/09 07:14

yusk24

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://hub.docker.com/_/wordpress

environment: WORDPRESS_DB_HOST: db

というように、DBとしてどのホストを利用するか環境変数で与える必要があると思うのですが、それが抜けているからではないでしょうか。
この場合であれば、WORDPRESS_DB_HOST: mysqlになるはずです。

あるいは、networkがsharedとしてあるのもちょっと気になります。内部にDNSがあって名前を引いているはずなのですが、sharedだとどうなるのかなと。

投稿2019/05/08 13:04

otolab

総合スコア765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusk24

2019/05/08 14:17

``` environment: WORDPRESS_DB_HOST: mysql ``` にしてみましたが特に変化はありませんでした。 残念です。
otolab

2019/05/08 14:31

うーむ。あとは...。 1. mysql1, mysql2のように名前を変えてみる 2. 参考にしたサイトのsharedに置くパターンを試してみる
yusk24

2019/05/08 22:11

mysql1やmysql2にするとなぜかうまく動きませんでした。 dbとかの名前もなんだかうまく動かなかったです。 そもそも何かおかしいですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問