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