我是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中做错了什么。我尝试了几种不同的方法,但它们似乎没有用。