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 了解 ngony 在容器建立和啟動時必須啟動?
  2. 如何讓 nginx 理解使用 PHP?

對於1.我所知道的是這是不可能的碼頭工人建構

對於 2. 我想使用教程,但這些都是錯誤的,因為:

  • 沒有/etc/nginx/sites-available目錄
  • 沒有snippets/fastcgi-php.conf在任何地方呼叫任何檔案來包含在 nginx.conf 中

我以前從未使用過 nginx,所以我不知道從哪裡開始。我發現沒有任何教程有效,因為所有這些文件和資料夾都不存在。我得到的只是 403 錯誤頁面。

答案1

這是我在某個時候為您提供的方法,您必須在Dockerfile並在運行 docker 時隨時啟動它,將其設定為 ondocker-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;"]

希望對您和其他同事有幫助

相關內容