簡體   English   中英

如何使用網站和 php 運行 Docker 容器?

[英]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 的網絡服務器,您可以使用預裝PHP7Apache網絡服務器的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM