nginx возвращает плохой шлюз при использовании Dockerfile для php

#php #docker #nginx #docker-compose

Вопрос:

У меня есть следующий docker-compose.yml файл:

 version: '3.1'  services:  php:  image: php:fpm  volumes:  - ./code:/code  networks:  - code-network   web:  image: nginx:latest  ports:  - "8080:80"  volumes:  - ./code:/code  - ./site.conf:/etc/nginx/conf.d/default.conf  networks:  - code-network networks:  code-network:  driver: bridge   

Это файл site.conf:

 server {  listen 80;  index index.php index.html;  server_name localhost;  error_log /var/log/nginx/error.log;  access_log /var/log/nginx/access.log;  root /code;   location ~ .php$ {  try_files $uri =404;  fastcgi_split_path_info ^(. .php)(/. )$;  fastcgi_pass php:9000;  fastcgi_index index.php;  include fastcgi_params;  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  fastcgi_param PATH_INFO $fastcgi_path_info;  } }  

Это прекрасно работает.

Теперь я хочу установить mysqli, поэтому я меняю image: php:fpm его на:

 build:  context: .  dockerfile: Dockerfile  

И добавьте этот файл Dockerfile:

 FROM php:fpm RUN docker-php-ext-install mysqli  

Результат: docker-compose up все еще работает, но в тот момент, когда я перехожу localhost:8080 , я получаю 502. На консоли написано:

 [error] 30#30: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.240.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://192.168.240.3:9000", host: "localhost:8080"  

Комментарии:

1. проверьте docker-compose ps вывод