Centos7 容器中的 Docker nginx php

Centos7 容器中的 Docker nginx php

我必须创建一个 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

我的问题:

  1. 我怎样才能让docker明白nginy必须在容器创建和启动时启动?
  2. 我如何让 nginx 理解使用 PHP?

对于 1. 我所知道的是,这是不可能的docker build

对于 2. 我想使用教程但那些都是错误的,因为:

  • 没有/etc/nginx/sites-available目录
  • snippets/fastcgi-php.confnginx.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;"]

希望它能帮助你和其他同事

相关内容