debian 10.2(buster-slim) + php 7.3 + apache 2.4 + drupal 8.8 + custom drupal modules
5.7K
這是一個 docker 映像檔,此映像檔內容包含:debian 10.2(buster-slim) + php 7.3 + apache 2.4 + drupal 9.0.7 + drush 10 + D4S 專案模組 + D4S Bootstrap 版型(開發中,請勿啟用)。 目前已納入臺北市校園單一身分驗證服務的各級學程所有學校都可以使用,不再受限於各別校務行政系統的開放性。
drupal/console 尚未完全支援 drupal 9,因此改用 drush 10,兩者的差別請看這篇文章。
目前已經完成的模組和功能概述如下:
在 Windows 或 Mac 工作站上進行架站測試與套件開發,請先安裝 docker desktop ,然後啟動主控台,執行底下介紹的 docker-compose 指令。
請依照 docker 官方文件安裝 docker engine 和 docker compose,然後在文字模式執行底下介紹的 docker-compose 指令。
在 NAS 上建立 NFS 共享資料夾,並掛載到所有的集群電腦上,掛載點為 /nas_storage
在所有的集群電腦上安裝 docker engine 和 docker compose
啟用 Docker Swarm:
docker swarm init
建立 overlay 網路:
docker network create -d overlay --attachable core-infra
建立 docker swarm 儲存池,可透過 NFS 掛載 NAS 資料夾或使用本地空間:
mkdir /storage
在儲存池內建立 Volume:certs、traefik、portainer
下載組態檔 swarm-core.yml 並修改組態中的網址設定:
建立核心服務:
docker stack deploy --compose-file=swarm-core.yml core
在 DNS 為管理頁面加入紀錄:
traefik.貴校網域.tp.edu.tw
portainer.貴校網域.tp.edu.tw
在 Swarm 中部署 drupal4school,首先在儲存池內建立 Volume:mysql、drupal/modules、drupal/themes、drupal/sites
下載組態檔 swarm-drupal.yml 並修改組態中的網址設定,將網域名稱 xxps 修改為貴校的網域,另外需修改站台相關環境變數,詳細說明請看下一小節
登入 portainer 管理頁面,點選 Swarm 集群,進入 Swarm 集群後點選左側選單中的 Stack,新增一個 Stack 名稱為 drupal
將修改後的 swarm-drupal.yml 所有內容複製起來,貼到剛剛的 stack 中,然後按最下面的「Deploy the stack」按鈕,d4s 將會自動啟動(需約 10 分鐘)
要架設一個 drupal 網站最簡單的方法就是使 docker-compose 指令。請先下載 docker-compose.yml 範例檔,下載完成後請修改檔案中的環境變數、磁碟掛載路徑...等等參數,然後再執行底下的指令:
docker-compose up -d
要移除所有啟動的容器則使用以下指令:
docker-compose down
要將 drupal 容器更新到最新版,而不影響已經運作之站台(保留所有站台資料和模組設定),請用以下指令:
docker pull fosstp/drupal
docker-compose up -d
環境變數說明如下:
資料庫名稱預設為 drupal,容器啟動時會自動為您建立。
以上環境變數將透過 drush 或 drupal console 自動為您安裝網站,無需透過網頁進行任何設定,網站將直接啟用。如要變更以上參數,必須將所有舊容器移除重新啟動(所有資料將會遺失,一切重來):
docker-compose down
docker-compose up -d
您可以依照以下步驟,手動建立所有必要的容器。 使用此映像檔的基本語法如下:
docker run --name drupal -p 80:80 -d fosstp/drupal
要建立舊版的 drupal 環境,請在最後面加上版序,例如:
docker run --name drupal -p 80:80 -d fosstp/drupal:8
或
docker run --name drupal -p 80:80 -d fosstp/drupal:7
其中 --name 為容器名稱,範例為 drupal, -p 指定對外連線埠號,範例為 80, -d 指定來源映像檔,範例為本專案所建立的映像檔 fosstp/drupal。
容器啟動後,可以使用 http://localhost 或 http://主機的真實IP 語法連結 drupal 網站。
有許多資料庫可以支援此映像檔,我們建議您採用 mysql docker 映像檔來部署資料庫,說明如下。
請使用下列指令建立 mysql 容器:
docker run --name mysql -e MYSQL_DATABASE=drupal -e MYSQL_ROOT_PASSWORD=dbpassword -d mysql --default-authentication-plugin=mysql_native_password
上述指令之說明如下:
--name 為容器名稱 mysql,-e 為設定環境變數,環境變數 MYSQL_DATABASE 為容器啟動時要自動建立的資料庫 drupal,環境變數 MYSQL_ROOT_PASSWORD 則指定該資料庫系統的管理員 root 密碼為 dcpassword。
最後的容器啟動指令 --default-authentication-plugin=mysql_native_password 可以讓 MySql 8 使用 MySql 5 的加密演算法,由於 Linux 系統暫時還不支援 MySql 8 的編碼方式,因此想要與 phpMyAdmin 搭配使用就必須修改為向下相容。
我們建議您使用以下指令,安裝 phpmyadmin 容器,作為管理資料庫之用:
docker run --name phpmyadmin --link mysql:db -p 8080:80 -d phpmyadmin
在上面的範例中,我們使用 --link 參數將 mysql 容器指派給 phpmyadmin 容器,並且將主機別名設定為 db。當 phpmyadmin 容器啟動時,會自動連上 mysql 容器,但您仍然需要自己輸入管理員 root 及其密碼 dbpassword。
Content type
Image
Digest
Size
232.5 MB
Last updated
over 4 years ago
Requires Docker Desktop 4.37.1 or later.