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

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

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

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

2074閲覧

docker-compose+nginxproxy+letsencrypt+wordpress

ruuusaamarki

総合スコア468

docker-compose

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

2クリップ

投稿2019/06/14 03:26

編集2019/06/17 05:41

前提・実現したいこと

docker-compose+nginxproxy+letsencrypt+wordpressで
SSL対応したローカル開発環境を立ち上げたいのですが
ネットワークの通信がうまく通りません。

発生しているエラーメッセージ

firefoxからhttps://example.comにアクセスすると

error

1500 Internal Server Error 2nginx/1.14.1

と出ます。

ログを確認したところ以下のようになりました。
sharedのログ

log

1nginx-proxy | nginx.1 | example.com 172.20.0.1 - - [14/Jun/2019:02:55:51 +0000] "GET / HTTP/2.0" 500 193 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0" 2

wptest1のログ

log

1 2ESC[36mwordpress_1 |ESC[0m AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.5. Set the 'ServerName' directive globally to suppress this message 3ESC[36mwordpress_1 |ESC[0m [Fri Jun 14 02:55:46.377404 2019] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.3.6 configured -- resuming normal operations 4

ディレクトリ構成

DE
∟shared
∟wptest1

該当のソースコード

yml

1#shared/docker-compose.yml 2 3version: "2" 4services: 5 nginx-proxy: 6 image: jwilder/nginx-proxy 7 container_name: nginx-proxy 8 ports: 9 - 80:80 10 - 443:443 11 volumes: 12 - ./certs:/etc/nginx/certs:ro 13 - /etc/nginx/vhost.d 14 - /usr/share/nginx/html 15 - /var/run/docker.sock:/tmp/docker.sock:ro 16 restart: always 17 networks: 18 - default 19 letsencrypt-nginx-proxy-companion: 20 image: jrcs/letsencrypt-nginx-proxy-companion 21 container_name: nginx-letsencrypt 22 volumes: 23 - ./certs:/etc/nginx/certs 24 - /var/run/docker.sock:/var/run/docker.sock:ro 25 volumes_from: 26 - nginx-proxy 27 restart: always 28 29networks: 30 default: 31 external: 32 name: shared 33

yml

1#wptest1/docker-compose.yml 2 3version: "2" 4services: 5 wordpress: 6 image: wordpress 7 environment: 8 VIRTUAL_HOST: example.com 9 VIRTUAL_PORT: 443:443 10 WORDPRESS_DB_PASSWORD: root 11 LETSENCRYPT_HOST: example.com 12 LETSENCRYPT_EMAIL: example@example.com 13 LETSENCRYPT_TEST: "false" 14 depends_on: 15 - mysql 16 restart: always 17 networks: 18 - default 19 logging: 20 options: 21 max-size: 5m 22 max-file: "10" 23 24 mysql: 25 image: mysql:5.7 26 environment: 27 MYSQL_ROOT_PASSWORD: root 28 restart: always 29 logging: 30 options: 31 max-size: 5m 32 max-file: "10" 33 34networks: 35 default: 36 external: 37 name: shared

###作業した内容
ネットワークを立ち上げ
コンテナをそれぞれ立ち上げました。

bash

1 2$ docker network create --driver bridge shared 3$ cd shared 4$ docker-compose up -d 5$ cd wptest1 6$ docker-compose up -d 7

その後ホストPCのhostsファイルに
0.0.0.0 example.comとしております。

試したこと

ymlのnetwork部分(service配下のdefaultとなっている部分)

yml

1services: 2 nginx-proxy: 3 networks: 4 - default

を以下のように

yml

1services: 2 nginx-proxy: 3 networks: 4 - shared

とすると、docker-compose upをかけた時に

error

1ERROR: Service "nginx-proxy" uses an undefined network "shared"

と表示されます。

試したこと2

docker ps で確認すると以下のようになっておりました。

$docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES hjkasduyt7 wordpress "docker-entrypoint." 2 hours ago Up 2 hours 80/tcp wordpress_1 876sdfsafd mysql:5.7 "docker-entrypoint." 2 hours ago Up 2 hours 3306/tcp, 33060/tcp mysql_1 76876jkhkk jrcs/letsencrypt-nginx-proxy-companion "/bin/bash /app/ent" 2 hours ago Up 2 hours nginx-letsencrypt 897asdf876 jwilder/nginx-proxy "/app/docker-entryp" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx-proxy

試したこと3

以下のコマンドでapacheの設定ファイルを確認しようとしましたが
debianでのapache設定ファイルのどこを確認したら良いかがよくわかりませんでした。

$ docker-compose exec wordpress bash

試したこと3

テストとしてwordpressをやめてhttpdコンテナで接続してみましたが
同じ現象になりました。
ブラウザからhttpでは正常に接続できてhttpsだと500のサーバエラー(nginx)が返ってきます。

少しわかってきたこと

プロキシ→ウェブサーバの通信は80ポートで行われているっぽい。

参考ページ

当初SSLなしの環境で
https://suin.io/561
こちらのページを参考に構築し、wpサイトを動かすことはできました。

その後SSL設定をやろうとコンテナ内でゴネごねしようとしていたのですが
以下のページを発見して参考にさせていただいている次第です。
https://hogehuga.net/linux/166/
https://hogehuga.net/linux/116/

質問内容

確認すべきところ、テストすべきことなど細かいことでも構いませんので
ご教授いただけましたら幸いです。

自分としてはnginxが表示されているのでそこから
アプリケーションコンテナへの通信でこけていると予想しておりますが
解決策が見つけられません。

またhostsにて0.0.0.0 と指定しておりますが
ここもできれば 192.168〜という形にしたいと考えており、
設定の仕方もご教授いただければ幸いです。
よろしくお願いいたします。

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

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

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

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

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

t_obara

2019/06/14 04:02

色々なコンテナを利用していますが、必要最小限のコンテナだけで動かして みて、うまくできたらコンテナを増やしてみてはいかがですか? 回答する側としても、全てに目を通して間違い探しをするのは苦痛です。 Internal Server Errorはどのような時に出力されるエラーかわかりますか? そのwebサーバーがどのようなエラーを出力しているのかを確認しましょう。
ruuusaamarki

2019/06/14 05:14

ご指摘ありがとうございます。letsencryptを省いた構成でも再考してみます。ログに関しまして失礼いたしました。追記させていただきました。
t_obara

2019/06/14 05:22

Dockerのログではなく、webサーバーのログです。
退会済みユーザー

退会済みユーザー

2019/06/14 18:36

"Set the 'ServerName' directive globally to suppress this message"とログに表示されているようですが、ぐぐってみるとApacheがヒットしますね。nginxではなくApacheが動作しているのではないでしょうか。「sudo service httpd stop」このコマンドをコンテナ内で実行しても同じログが出ますか?
ruuusaamarki

2019/06/15 01:50

webサーバのログ追記してみました。すみません、logが混在しておりましたので分けました。1行目がnginxプロキシのログで2行目以降がwordpressが入っているサーバのログとなります。wpサーバでservice apache2 stopは実行できました。実行後はローカルに戻ったのでおそらくコンテナが一度落ちて再起動したような動きと予想しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問