容器化 PHP 應用

先決條件

  • 你已安裝最新版本的 Docker Desktop
  • 你有一個 git 客戶端。本節中的示例使用基於命令列的 git 客戶端,但你可以使用任何客戶端。

概述

本節將引導你完成 PHP 應用的容器化和執行過程。

獲取示例應用

在本指南中,你將使用一個預構建的 PHP 應用。該應用使用 Composer 進行庫依賴管理。你將透過 Apache Web 伺服器提供該應用。

開啟終端,切換到你想要工作的目錄,並執行以下命令克隆倉庫。

$ git clone https://github.com/docker/docker-php-sample

該示例應用是一個基本的 hello world 應用,以及一個在資料庫中增加計數器的應用。此外,該應用使用 PHPUnit 進行測試。

初始化 Docker 資產

既然你有了應用,你可以使用 docker init 來建立容器化應用所需的 Docker 資產。在 docker-php-sample 目錄內,在終端中執行 docker init 命令。docker init 提供了一些預設配置,但你需要回答一些關於你的應用的問題。例如,此應用使用 PHP 8.2 版本。請參考以下 docker init 示例,並使用相同的答案來回答你的提示。

$ docker init
Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000

現在,你的 docker-php-sample 目錄中應該包含以下內容。

├── docker-php-sample/
│ ├── .git/
│ ├── src/
│ ├── tests/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── compose.yaml
│ ├── composer.json
│ ├── composer.lock
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.md

要了解更多關於 docker init 新增的檔案,請參閱以下內容

執行應用

docker-php-sample 目錄內,在終端中執行以下命令。

$ docker compose up --build

開啟瀏覽器並訪問應用,地址為 https://:9000/hello.php。你應該會看到一個簡單的 hello world 應用。

在終端中,按下 ctrl+c 來停止應用。

在後臺執行應用

透過新增 -d 選項,你可以將應用與終端分離並在後臺執行。在 docker-php-sample 目錄內,在終端中執行以下命令。

$ docker compose up --build -d

開啟瀏覽器並訪問應用,地址為 https://:9000/hello.php。你應該會看到一個簡單的 hello world 應用。

在終端中,執行以下命令來停止應用。

$ docker compose down

有關 Compose 命令的更多資訊,請參閱 Compose CLI 參考

總結

在本節中,你學習瞭如何使用 Docker 容器化和執行一個簡單的 PHP 應用。

相關資訊

下一步

在下一節中,你將學習如何使用 Docker 容器開發你的應用。

頁面選項