【发布时间】:2015-07-06 12:12:48
【问题描述】:
我正在尝试链接 2 个单独的容器:
问题是 php 脚本不起作用。可能是 php-fpm 配置不正确。
这是源代码,在我的repository 中。这是文件docker-compose.yml:
nginx:
build: .
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www/test/
links:
- fpm
fpm:
image: php:fpm
ports:
- "9000:9000"
还有Dockerfile,我用它来构建一个基于 nginx 的自定义镜像:
FROM nginx
# Change Nginx config here...
RUN rm /etc/nginx/conf.d/default.conf
ADD ./default.conf /etc/nginx/conf.d/
最后,这是我自定义的 Nginx 虚拟主机配置:
server {
listen 80;
server_name localhost;
root /var/www/test;
error_log /var/log/nginx/localhost.error.log;
access_log /var/log/nginx/localhost.access.log;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
fastcgi_pass 192.168.59.103:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
谁能帮我正确配置这些容器以执行 php 脚本?
附言 我像这样通过 docker-composer 运行容器:
docker-compose up
来自项目根目录。
【问题讨论】:
-
到目前为止,您是如何尝试配置它们的,或者您使用了哪些代码。请不要让我猜我猜的很垃圾。
-
@MatthewBrown Huh,我将我的代码公开repository on GitHub 并认为这就足够了,但你是对的,最好在我的问题中也显示代码。
-
当图像启动时,你能
docker exec进入正在运行的容器并 ping fpm 吗? -
@MatthewBrown 是的,我赢了,谢谢
-
P.S. 我还实现了将
Nginx和PHP-FPM与 Vagrant 和 Ansible 链接在一起的工作解决方案。如果需要,请查看我的仓库 github.com/bocharsky-bw/vagrant-ansible-docker。
标签: php nginx docker dockerfile docker-compose