Я нашел похожий вопрос здесь , но он не совсем ответил на мой вопрос.
Я всегда устанавливал свой стек локально для разработки, NginX, PHP7, MySQL и Couchbase,Никаких проблем.
Теперь мне нужно работать над проектом, который требует более низкую версию PHP ... И моей команде тоже придется работать над этим, поэтому я обратился к Docker, чтобы попытаться найтирешение.
В моих существующих файлах конфигурации NGINX я отправляю запросы на php-fpm следующим образом
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_ignore_client_abort on;
fastcgi_param SERVER_NAME $http_host;
}
См. строку
fastcgi_pass 127.0.0.1:9000;
?
Я надеялся, что смогу создать докер-контейнер, работающий с определенной версией PHP, и записать его в блок сервера, как указано выше, но с
fastcgi_pass 172.17.0.1:9000;
, где 172.17.0.1 - это IP-адресКонтейнер.
Я использовал, очень просто,
FROM php:7.1-fpm
EXPOSE 9000
В качестве моего dockerfile.Я могу создать образ, запустить контейнер, запустить bash в контейнере и увидеть, что PHP -I и PHP -v возвращают то, что я ожидаю.
Запуск проверки docker дал мне два IP-адреса, 172.17.0.1,и 172.17.0.2 (я пробовал оба в приведенном выше примере)
Однако эта настройка не работает - когда я пытаюсь зайти на сайт в браузере, я получаю ошибку тайм-аута шлюза NGINX 504.
Я догадываюсь, что мне чего-то не хватает, но не уверен, что именно.
С удовольствием использую docker compose, если мне нужно, с удовольствием монтирую тома в контейнер, если мне нужно.Просто не уверен, что мне нужно! :) 1033 *