我尝试从php:fpm
运行新容器:
docker run --name fpmtest -d -p 80:9000 php:fpm
默认情况下,它会在Dockerfile中公开端口9000。
然后我登录到容器并创建index.html文件:
$ docker exec -i -t fpmtest bash
root@2fb39dd6a40b:/var/www/html# echo "Hello, World!" > index.html
在容器内部,我尝试使用curl
获取此内容:
# curl localhost:9000
curl: (56) Recv failure: Connection reset by peer
在容器外面我收到另一个错误:
$ curl localhost
curl: (52) Empty reply from server
答案 0 :(得分:1)
这是未经测试的,但松散地基于md5的优秀gist。要将此图像与nginx一起使用,该图像的Dockerfile如下所示:
<强> Dockerfile 强>
FROM nginx:1.7
COPY php-fpm.conf /etc/nginx.conf.d/default.conf
您复制的nginx.conf示例可能如下所示。
<强> PHP-fpm.conf 强>
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_pass fpmtest:9000;
fastcgi_index index.php;
}
}
注意 fastcgi_pass 引用您的容器名称(fpmtest)。