使用 Docker Compose 設定 Drupal 11 的步驟
2025-05-04
標籤: 架站
廣告
使用 Docker Compose 設定 Drupal 11 的步驟,包含必要的服務(Drupal、MySQL)以及配置說明。
環境要求
- 安裝 Docker 和 Docker Compose
- 基本的 Docker 與 Docker Compose 知識
步驟
1. 創建項目目錄
創建一個新目錄用於存放 Docker Compose 配置文件和 Drupal 相關文件:
mkdir drupal11-project
cd drupal11-project
2. 創建 docker-compose.yml
在項目目錄中創建 docker-compose.yml
文件,並添加以下內容:
version: '3.8'
services:
drupal:
image: drupal:11
ports:
- "8080:80"
volumes:
- drupal-modules:/var/www/html/modules
- drupal-profiles:/var/www/html/profiles
- drupal-themes:/var/www/html/themes
- drupal-sites:/var/www/html/sites
depends_on:
- mysql
environment:
- DRUPAL_DB_HOST=mysql
- DRUPAL_DB_NAME=drupal
- DRUPAL_DB_USER=drupal
- DRUPAL_DB_PASSWORD=drupal
networks:
- drupal-network
mysql:
image: mysql:8.0
environment:
- MYSQL_DATABASE=drupal
- MYSQL_USER=drupal
- MYSQL_PASSWORD=drupal
- MYSQL_ROOT_PASSWORD=root
volumes:
- mysql-data:/var/lib/mysql
networks:
- drupal-network
volumes:
drupal-modules:
drupal-profiles:
drupal-themes:
drupal-sites:
mysql-data:
networks:
drupal-network:
driver: bridge
配置文件說明:
- drupal 服務:使用官方 Drupal 11 鏡像,映射主機的 8080 PORT到容器的 80 PORT,掛載持久化卷以保存模塊、主題、配置文件等。
- mysql 服務:使用 MySQL 8.0 鏡像,設置數據庫名稱、用戶名、密碼,並掛載卷以持久化數據。
- volumes:定義持久化卷,確保數據在容器重啟後不會丟失。
- networks:創建一個橋接網絡,供 Drupal 和 MySQL 容器通信。
3. 啟動 Docker Compose
在項目目錄中運行以下命令啟動服務:
docker-compose up -d
-d
表示在後台運行容器。- 啟動後,Drupal 將運行在
http://localhost:8080
。
4. 完成 Drupal 安裝
- 打開瀏覽器,訪問
http://localhost:8080
。 - 按照 Drupal 安裝向導進行配置:
- 選擇語言並繼續。
- 數據庫配置:
- 數據庫類型:MySQL
- 數據庫名稱:drupal
- 數據庫用戶名:drupal
- 數據庫密碼:drupal
- 主機:mysql(與
docker-compose.yml
中的服務名稱一致)
- 完成其餘設置(站點名稱、管理員賬戶等)。
5. 驗證安裝
安裝完成後,訪問 http://localhost:8080
,確認 Drupal 站點正常運行。
6. 管理容器
- 停止服務:
bash docker-compose down
- 刪除卷(注意:這將刪除數據庫和 Drupal 文件):
bash docker-compose down -v
- 查看容器日誌:
bash docker-compose logs
注意事項
- 持久化數據:確保卷配置正確,否則容器刪除後數據將丟失。
- 安全性:生產環境中應修改 MySQL 的默認密碼並使用更安全的配置。
- 擴展性:可根據需要添加其他服務(如 PHPMyAdmin)或調整配置(如 PHP 設置)。
常見問題
- 無法連接數據庫:檢查
mysql
服務是否正常運行,確保DRUPAL_DB_HOST
設置為mysql
。 - PORT衝突:如果 8080 PORT被佔用,修改
docker-compose.yml
中的PORT映射(如8081:80
)。
完成以上步驟後,你將擁有一個運行在 Docker 環境中的 Drupal 11 站點!