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
あなたの回答
tips
プレビュー