使用 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 安裝

  1. 打開瀏覽器,訪問 http://localhost:8080
  2. 按照 Drupal 安裝向導進行配置:
  3. 選擇語言並繼續。
  4. 數據庫配置:
    • 數據庫類型:MySQL
    • 數據庫名稱:drupal
    • 數據庫用戶名:drupal
    • 數據庫密碼:drupal
    • 主機:mysql(與 docker-compose.yml 中的服務名稱一致)
  5. 完成其餘設置(站點名稱、管理員賬戶等)。

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 站點!

廣告