
我必須建立一個 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 了解 ngony 在容器建立和啟動時必須啟動?
- 如何讓 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;"]
希望對您和其他同事有幫助