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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

Q&A

0回答

4353閲覧

docker でコンテナは起動しているのに「このサイトにアクセスできません」という画面になってしまう

mmmmmr

総合スコア18

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

0グッド

0クリップ

投稿2020/05/13 15:07

編集2020/05/14 03:16

Dockerとlaravelで環境構築を行っています。
docker-compose psで確認すると、コンテナ自体は立ち上がっているのですが
localhostにアクセスすると
「このサイトにアクセスできません。localhost により途中で接続が切断されました。」
というエラー画面が出てローカルサイトにアクセスができません。

キャッシュクリアやコンテナ、docker、PC自体の再起動なども行いましたが解消できませんでした。

考えられる原因はなんでしょうか?
また、どうしたら解消できるでしょうか?

$ docker-compose ps Name Command State Ports -------------------------------------------------------------------------------------------------------------------- server_app docker-php-entrypoint php-fpm Up 9000/tcp server_mysql docker-entrypoint.sh mysql ... Up 0.0.0.0:3306->3306/tcp, 33060/tcp server_nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp server_phpmyadmin /docker-entrypoint.sh apac ... Up 0.0.0.0:9090->80/tcp server_worker /bin/sh -c php artisan que ... Up 9000/tcp

dockercomposeyml

1version: '2' 2services: 3 nginx: 4 image: nginx:alpine 5 container_name: server_nginx 6 links: 7 - app 8 ports: 9 - "80:80" 10 - "443:443" 11 volumes: 12 - "./nginx.conf:/etc/nginx/nginx.conf" 13 - ".:/app" 14 app: 15 image: docker-laravel-alpine 16 working_dir: /app 17 container_name: server_app 18 hostname: app 19 expose: 20 - 9000 21 volumes: 22 - ".:/app" 23 - "./php.ini:/usr/local/etc/php/conf.d/php.ini" 24 links: 25 - mysql 26 - worker 27 extra_hosts: 28 - "admin.dev:127.0.0.1" 29 - "www.dev:127.0.0.1" 30 31 worker: 32 image: docker-laravel-alpine 33 working_dir: /app 34 container_name: server_worker 35 entrypoint: /bin/sh 36 command: -c "php artisan queue:work --daemon --delay=1 --tries=10" 37 hostname: worker 38 expose: 39 - 9000 40 volumes: 41 - ".:/app" 42 - "./php.ini:/usr/local/etc/php/conf.d/php.ini" 43 links: 44 - mysql 45 extra_hosts: 46 - "admin.dev:127.0.0.1" 47 - "www.dev:127.0.0.1" 48 49 mysql: 50 image: mysql:5.7 51 container_name: server_mysql 52 #entrypoint: /localdb-run.sh 53 hostname: mysql 54 command: > 55 mysqld 56 --character-set-server=utf8 57 --collation-server=utf8_unicode_ci 58 --skip-character-set-client-handshake 59 --sql_mode= 60 expose: 61 - 3306 62 ports: 63 - "3306:3306" 64 65 phpmyadmin: 66 image: phpmyadmin/phpmyadmin 67 container_name: server_phpmyadmin 68 hostname: phpmyadmin 69 links: 70 - "mysql:db" 71 ports: 72 - "9090:80" 73

#追記

Yasumichi さんにご教示いただき、
server_nginx に入ってcurlコマンドを実施したところ、エラーが出ました。
nginxのプロセスもうまく立ち上がっていないようです。
→ローカルで実行していました。dockerコンテナ内ではきちんと動いているようでした。(追記2参照)

$ docker exec -it server_nginx sh > curl https://localhost curl: (7) Failed to connect to localhost port 443: Connection refused $ps -ef | grep nginx 502 3876 1164 0 11:06AM ttys006 0:00.00 grep nginx

docker-compose up -dの際に、exitするため、
nginx.confの以下の表記を一度消した状態でdocker-compose up -dを実行し、
あとから同じ箇所を書き加えているのですがそれが問題でしょうか…?

server { listen 443; server_name _;   ……

nginxconf

1worker_processes auto; 2 3error_log /dev/fd/1 crit; 4 5pid /var/run/nginx.pid; 6worker_rlimit_nofile 51200; 7 8 9events { 10 use epoll; 11 worker_connections 51200; 12 multi_accept on; 13 accept_mutex_delay 100ms; 14} 15 16 17http { 18 include mime.types; 19 default_type application/octet-stream; 20 21 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 22 '$status $body_bytes_sent "$http_referer" ' 23 '"$http_user_agent" "$http_x_forwarded_for"'; 24 25 access_log /dev/fd/1 main; 26 27 client_max_body_size 100m; #add 28 sendfile on; 29 keepalive_timeout 120; 30 tcp_nopush on; 31 open_file_cache max=100 inactive=20s; 32 33 34 gzip on; 35 36server { 37 listen 80; 38 server_name _; 39 40 root /app/public; 41 index index.php index.html; 42 43 location / { 44 try_files $uri $uri/ /index.php?$query_string; 45 } 46 47 error_page 500 502 503 504 /50x.html; 48 location = /50x.html { 49 root html; 50 } 51 52 location ~ .php$ { 53 root /app/public; 54 fastcgi_param HTTP_HOST $host; 55 fastcgi_param HTTP_X_REAL_IP $remote_addr; 56 fastcgi_param HTTP_X_FORWARDED_HOST $host; 57 fastcgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; 58 fastcgi_param HTTP_X_REMOTE_ADDR $remote_addr; 59 fastcgi_pass app:9000; 60 fastcgi_split_path_info ^(.+.php)(/.+)$; 61 fastcgi_index index.php; 62 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 63 include fastcgi_params; 64 } 65 66 location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { 67 expires max; 68 access_log off; 69 } 70 } 71 server { 72 listen 443; 73 server_name _; 74 75 ssl on; 76 ssl_certificate /etc/nginx/ssl/server.crt; 77 ssl_certificate_key /etc/nginx/ssl/server.key; 78 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 79 80 root /app/public; 81 index index.php index.html; 82 83 location / { 84 try_files $uri $uri/ /index.php?$query_string; 85 } 86 87 error_page 500 502 503 504 /50x.html; 88 location = /50x.html { 89 root html; 90 } 91 92 location ~ .php$ { 93 root /app/public; 94 fastcgi_param HTTP_HOST $host; 95 fastcgi_param HTTP_X_REAL_IP $remote_addr; 96 fastcgi_param HTTP_X_FORWARDED_HOST $host; 97 fastcgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; 98 fastcgi_param HTTP_X_REMOTE_ADDR $remote_addr; 99 fastcgi_pass app:9000; 100 fastcgi_split_path_info ^(.+.php)(/.+)$; 101 fastcgi_index index.php; 102 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 103 include fastcgi_params; 104 } 105 106 location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { 107 expires max; 108 access_log off; 109 } 110 } 111}

#追記2
すみません、nginxコンテナ内でプロセス確認したところ、きちんと動いているようでした…。

$ docker exec -it server_nginx sh / # ps -ef | grep nginx 1 root 0:00 nginx: master process nginx -g daemon off; 6 nginx 0:00 nginx: worker process 7 nginx 0:00 nginx: worker process 8 nginx 0:00 nginx: worker process 9 nginx 0:00 nginx: worker process 30 root 0:00 grep nginx

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

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

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

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

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

Yasumichi

2020/05/13 15:26

ファイアウォールあたりの設定は大丈夫でしょうか?
mmmmmr

2020/05/13 15:30 編集

macを使用していて、firewallの設定もオフになっています...。
Yasumichi

2020/05/13 16:22 編集

docker exec -it server_nginx /bin/sh などで server_nginx のシェルに入って、 apk update apk --update add curl で curl がインストールできたら、 curl localhost でちゃんとレスポンスが返ってくるか、確認できますか?  それがダメッだったら、 ps -ef | grep nginx とかで nginx のプロセスが生きているか確認してください。nginx のサービスが上がっていない場合は、nginx.conf とかを見直す必要があると思います。
mmmmmr

2020/05/14 02:08

ご教示ありがとうございます。 nginx に入ってcurlコマンドを実施したところ curl: (7) Failed to connect to localhost port 443: Connection refused とエラーが出ました。 ps -ef | grep nginxで確認したところ 502 3876 1164 0 11:06AM ttys006 0:00.00 grep nginx しか返ってこなかったため、おっしゃる通りnginx のサービスが上がっていないようです…。 nginx.confについて追記致します。
bsdfan

2020/05/14 03:16

ポート80でもダメですか? https(443)の設定がちゃんとできてないように見えます。証明書とか。
mmmmmr

2020/05/14 07:37 編集

>ポート80でもダメですか? すみませんこちら設定や確認方法など詳しく教えていただけないでしょうか? >https(443)の設定がちゃんとできてないように見えます。証明書とか。 証明書の設定も一応行っているはずなのですが…なんででしょうTT
bsdfan

2020/05/14 10:05

コンテナに入って curl http://localhost。 docker-compose up のあとnginx.confを置き換えているようなことを書かれていますが、ファイルを置いたあとnginxを再起動しないとダメですよ。
mmmmmr

2020/05/14 11:00

curl http://localhost こちらでもだめでした。 !!! コンテナ再起動してみたら下記のエラーになりました…。 docker-compose up -d 後にnginxコンテナ内でopensslコマンドで設定しているはずなのですが…。 この接続ではプライバシーが保護されません localhost では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。 NET::ERR_CERT_INVALID
bsdfan

2020/05/14 14:33

それは証明書のエラーですね。 これだけでは何が原因かはわからないし、この質問からはかけ離れるので、違う質問を立てた方がいいでしょう。
mmmmmr

2020/05/15 02:18

わかりました。 この質問はクローズし、別で質問を立てたいと思います。 お二方ともご助言いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問