[英]How to run Docker container with website and php?
我有一個登陸頁面和一個用於發送電子郵件的 PHP 文件(反饋表)。 我想使用 Docker 測試這個表單。
我寫了這個 Dockerfile:
FROM php:7.4-cli
COPY . /usr/src/app
CMD [ "php", "/mail/contact_me.php"]
但這對我不起作用。
我在項目的根目錄中有帶有 PHP 文件的目錄mail
,但我仍然不確定 Dockerfile 是否正確:
FROM php:7.4-cli
繼承就足夠了,還是必須添加 nginx 服務器才能運行映像?COPY . /usr/src/app
COPY . /usr/src/app
到底是做什么的? 這樣對嗎?當您要創建自定義映像時,將使用Dockerfile
。
FROM php:7.4-cli
指定要自定義的基礎鏡像。
COPY . /usr/src/app
COPY . /usr/src/app
復制主機當前目錄.
進入容器/usr/src/app
。
CMD [ "php", "/mail/contact_me.php"]
指定要在容器內運行的命令。
在您的情況下,我認為不需要自定義圖像。
由於您需要一個帶有 PHP 的網絡服務器,您可以使用預裝PHP7
和Apache
網絡服務器的php:7.4.3-apache
鏡像。 您需要做的就是將您的應用復制到您的容器中,或者使用一個卷。 卷很棒,因為它實際上將您的主機目錄安裝到您的容器中,允許您從主機編輯您的應用程序並實時查看更改。
您可以docker-compose.yml
使用docker-compose.yml
文件。
version: "2"
services:
webserver:
image: php:7.4.3-apache
ports:
- "8181:80"
volumes:
- ./app:/var/www/html
假設您的應用程序位於主機上的app
文件夾中,該文件夾將安裝在您容器上的/var/html/html
中。 這里8181:80
會將主機上的8181
端口重定向到容器的80
端口,即 http 端口。
使用此命令啟動您的容器:
docker-compose up -d
您應該會在http://localhost:8181
看到您的登陸頁面
閱讀有關 Dockerfile(官方文檔)的信息: 編寫 Dockerfile 的最佳實踐
也許你需要另一個 Docker 鏡像: Docker HUB ~> bitnami/php-fpme
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.