Docker容器中的Nginx将无法运行PHP

时间:2015-01-25 00:12:44

标签: php nginx docker haproxy

我是Docker的初学者,我正在尝试构建自己的映像:Ubuntu + Nginx + PHP。

所以,我有一个名为 test 的目录。在目录中有两个其他目录, app 已启用网站。此外,还有一个Dockerfile,内容为:

FROM ubuntu:trusty

RUN apt-get update && \
    apt-get install -y nginx php5-fpm php5-mysql php-apc php5-imagick php5-imap php5-mcrypt php5-gd libssh2-php && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN echo "daemon off;" >> /etc/nginx/nginx.conf
ADD sites-enabled/ /etc/nginx/sites-enabled/
ADD app/ /app/

EXPOSE 80
CMD ["php5-fpm", "-c", "/etc/php5/fpm"]
CMD ["/usr/sbin/nginx"]

我成功构建了这张图片。然后我用docker run -d image_name创建容器。我获取了ID,然后运行docker inspect -f "{{.NetworkSettings.IPAddress}}" ID以获取容器的IP地址。

我需要这个IP地址,因为我还在另一个容器中运行HAProxy,所以我可以将它配置为指向正确的本地化。

因此,HAProxy和带有PHP应用程序的容器都运行正常。 HAProxy指向正确的应用程序。 PHP应用程序文件上载到容器内的正确位置。

但是,Nginx不会执行PHP。相反,当我尝试访问应用程序时,我只使用index.php PHP代码获得了一个下载文件。

可能是什么问题?请帮忙。

我的第一个猜测是,当我运行php5-fpm时,我在Dockerfile中做错了什么。我尝试了几种不同的方法,但它们似乎没有用。

1 个答案:

答案 0 :(得分:2)

仅限一个命令。

如果您需要“服务”,请查看supervisord或运行它。