我必须创建一个 Dockerfile,它必须根据定义继承 FROM centos:7,并安装 nginx 和 php,并让它显示一个 PHP 文件。
我的Dockerfile:
FROM centos:7
EXPOSE 80/tcp
RUN yum -y update
RUN yum -y install epel-release
RUN yum -y install nginx php php-fpm
RUN echo '<?php phpinfo();' > /var/www/demo/index.php
我的问题:
- 我怎样才能让docker明白nginy必须在容器创建和启动时启动?
- 我如何让 nginx 理解使用 PHP?
对于 1. 我所知道的是,这是不可能的docker build。
对于 2. 我想使用教程但那些都是错误的,因为:
- 没有
/etc/nginx/sites-available
目录 snippets/fastcgi-php.conf
nginx.conf 中没有任何地方调用任何文件
我以前从未使用过 nginx,所以我不知道从哪里开始。我找到的所有教程都不起作用,因为所有这些文件和文件夹都不存在。我得到的只是一个 403 错误页面。
答案1
这是我在某个时候给你的方法,你必须在Dockerfile并在运行docker时随时启动它,将其设置为docker-entrypoint.sh
Dockerfile:
#Install and config Nginx
RUN {\
apt-get install nginx -y\
rm /etc/nginx/sites-enabled/default\
}
ADD YOUR_CONFIG_FILE /etc/nginx/sites-enabled/
RUN service nginx start
RUN PATH="$PATH:docker-entrypoint.sh"
COPY docker-entrypoint.sh /
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]
docker-entrypoint.sh:
#!/bin/bash
service nginx start
/bin/bash
希望能帮助到你!
答案2
我通过添加以下内容设法使容器保持活动状态
CMD ["nginx", "-g", "daemon off;"]
希望它能帮助你和其他同事