Docker容器中的Nginx不会运行PHP

我是Docker的初学者,我试图构build自己的图像:Ubuntu + Nginx + PHP。

所以,我有一个名为test的目录。 在目录里面的两个其他目录, 应用程序网站启用 。 另外,还有一个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"] 

我成功地build立这个图像。 然后我用docker run -d image_name创build容器。 我得到了ID,然后运行docker inspect -f "{{.NetworkSettings.IPAddress}}" ID来获取容器的IP地址。

我需要这个IP地址,因为我也在另一个容器中运行HAProxy,所以我可以configuration它指向正确的地方。

所以,HAProxy和PHP应用程序的容器都运行正常。 HAProxy正在指出正确的应用程序。 PHP应用程序文件被上传到容器内的正确位置。

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

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

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

只有一个CMD。

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