#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
вывод