我发现了类似的问题here,但并不能完全回答我的问题。
我一直在本地安装堆栈以进行开发,NginX,PHP7,MySQL和Couchbase。没问题。
现在,我必须处理一个需要较低版本PHP的项目...而且我的团队也必须进行处理,因此我一直希望Docker尝试找到解决方案。
在现有的NGINX conf文件中,我将请求发送到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的docker容器,并将其写入服务器块,如上所述,但是使用
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 inspect给了我两个IP地址172.17.0.1和172.17.0.2(在上面的示例中我都尝试了)
但是,此设置无法正常工作-当我尝试在浏览器中访问该网站时,收到了NGINX 504网关超时错误。
猜测我缺少什么,但不确定是什么。
如果需要,可以高兴地使用docker compose,如果需要,可以高兴地将卷装载到容器中。只是不确定我需要什么!:)