隨著容器技術的普及,Docker 已成為現代軟件開發的重要工具。對於PHP 開發者而言,Docker 不僅能解決“在我機器上沒問題”的困擾,還能提高部署效率和環境一致性。
使用Docker 運行PHP 應用具備以下優勢:
環境一致性:確保開發、測試和生產環境保持一致。
部署快速:鏡像構建一次,可在多平台重複使用。
易於維護:容器隔離性強,更新與回滾更方便。
Dockerfile 是定義容器運行環境的文件。以下是一個適用於PHP 項目的基礎示例:
FROM php:8.0-apache
# 拷貝 PHP 源代碼到容器中
COPY src/ /var/www/html/
# 啟用 Apache 的 mod_rewrite 模塊
RUN a2enmod rewrite
這個Dockerfile 使用了PHP 8.0 搭配Apache 的官方鏡像,將項目源代碼複製到容器的Web 根目錄中,並啟用了URL 重寫功能,適用於多數PHP 框架。
編寫好Dockerfile 後,可以使用以下命令進行鏡像構建與容器啟動:
# 構建鏡像
docker build -t my-php-app .
# 運行容器
docker run -d -p 80:80 my-php-app
這段命令會創建名為my-php-app的鏡像,並啟動一個後台運行的容器,將容器的80 端口映射到主機端口。
當項目涉及多個服務(如數據庫)時,Docker Compose 是極佳的選擇。以下是一個典型的PHP + MySQL 的Compose 配置示例:
version: '3.8'
services:
web:
image: php:8.0-apache
volumes:
- ./src:/var/www/html/
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: my_db
這個配置定義了兩個服務:
web :PHP 應用容器,映射本地代碼目錄,並開放80 端口。
db :MySQL 服務,設置了root 密碼及默認數據庫。
通過docker-compose up命令即可一鍵啟動所有服務,極大提升開發效率。
將PHP 應用容器化是構建可移植、高可維護性系統的重要步驟。通過合理編寫Dockerfile 和使用Docker Compose,不僅可以快速搭建開發環境,還能確保線上部署的穩定與一致。
掌握這些Docker 與PHP 的結合技巧,將為你的開發流程帶來更多可能性與便利。