2016-05-22

用 Docker 快速安裝 Drupal 8

話說,距離阿舍最後一次安裝 Drupal 已經是幾年前的事了哩 ! 最近,阿舍因為在找某種軟體時,才又想到 Druapal,然後,阿舍就到 Drupal 官網去瞭解一下 Drupal 的現況,有看到 Drupal 8 的一些介紹,就有點被 Drupal 8 的操作介面給吸引到,因此,阿舍就有點好奇的想來稍為試玩一下,於是,就想要用 Docker 快速的安裝來試試哩 ...



(先說一下,如果還沒有用過 Docker 的話,阿舍就不建議用這個方式來試用 Drupal,阿舍沒有在這篇文解釋太多有關 Docker 的操作及指令說明哩 ....)

嗯 ... Drupal 果然有在 Docker 上提供 Drupal 7 ~ 8 的 Docker Image,所以,要用 Docker 來試 Drupal 就會單純些,於是,阿舍就先執行了下面第一行指令看一下有沒有 Official Image。

$ docker search drupal

果然有(就是在 Official 那一欄有出現 [OK] 那個),所以,阿舍就用下面這一行指令來下載 Dockerhub 上的最新一版的 Drupal Docker Image 來用囉 !  以阿舍下載的時間點來說,剛好是阿舍想測的 Drupal 8.1.1,所以,直接用下面第一行指令來就可以了,然後,再用第二行指令來看一下版本。

$ docker pull drupal

$ docker images | grep drupal

Drupal 官方提供的 Docker Image 沒有包含 MySQL,所以,除了要下載 Drupal 的 Docker Image 之外, 還要再下載 MySQL 或 PostgreSQL 資料庫的 Docker Image 來用,阿舍是想用 MySQL 資料庫來測,所以,就用下面的指令來下載 MySQL 的 Docker Image。

$ docker pull mysql

想用的 Docker Image 都準備好之後,接下來,就可以開始來啟動 Drupal 了,首先,請先用下面的指令來把 MySQL Server 給啟動起來,下面指令中的 MYSQL_ROOT_PSSWORD 是設定 MYSQL 的 root 帳號的密碼,而接著的 MYSQL_DATABASE、MYSQL_USER 和 MYSQL_USER_PASSWORD 則是設定要在這個 MySQL Container 啟動後,自動建立的資料庫名稱及這個資料庫的使用者帳號和密碼,阿舍用這種給環境參數的方式來建立一個叫 d811 的資料庫來給 Drupal 用,使用者叫「ayu」、密碼是「567890」。

$ docker run --name d811-mysql -e MYSQL_ROOT_PASSWORD='123456789' -e MYSQL_DATABASE='d811' -e MYSQL_USER='ayu' -e MYSQL_PASSWORD='567890' -d mysql

接著,就用下面的指令來啟用 Druapl 並且把 MySQL 連接上這個 Drupal 的 Container (--link 選項的第一個 d811-mysql 是要連結的 Container 名稱,而第二個 d811-mysql 則是要將這個 Container 對映到的主機名稱,也就是之後設定 Drupal 資料庫的「Database host:」選項會用到的值哩 ...)。

$ docker run --name d811 --link d811-mysql:d811-mysql -p 80:80 -d drupal

執行好上面二行指令後,用下面的 docker 指令來看一下剛剛啟動的這二個 Container 的狀況,如果在「STATUS」那一欄是看到「UP ...」而不是「Exit ...」的話,那就是正在執行了,這樣,就可以用去開網頁了 ...

$ docker ps

一般是用「http://127.0.0.1」就可看到 Drupal 的設定頁,然後,在設定的資料庫的時候,除要用剛剛 MYSQL_DATABASE、MYSQL_USER 和 MYSQL_USER_PASSWORD 等參數的設定值來設定外,比較特別的是,要點開「ADVANCED OPTIONS」項目,在「Database host:」那一欄輸入「d811-mysql」,不然,Drupal 會找不到 MySQL Server 的 ....

一切順利的話,就會看到 Drupal 安裝完成後的歡迎畫面,接著,就可以開始試用了,阿舍稍微的試了一下 Drupal 8,阿舍覺得用起還滿順手的,以前熟悉的感覺又回來了,嗯 ... 雖然,還沒測到阿舍在介紹影片看到的東西,不過,已經有吸引到阿舍有空想來好好玩一下這個 Drupal 8 哩 ... 呵呵 !

最後,阿舍想要提醒一下,阿舍這篇介紹的這種用 Docker 安裝的方式應該只適合用來做測試,因為,阿舍沒把資料掛到外部的儲存空間,所以,一旦 Docker Container 關了,就什麼設定都沒了,如果想要 Docker 在正試環境跑 Drupal 的話,還需要更多一點的規劃和設定,阿舍有空,再來研究一下哩 ...


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

2 則留言 :

匿名 提到...

你好~
不曉得阿舍Docker的版本是多少,
我用的時候是1.12.2

$ docker image | grep drupal

這行的image要加s,才會正常哦

$ docker images | grep drupal

Arthur 提到...

Hello,

是阿舍打錯了哩 ... 呵 !

已修正。 謝謝囉 !



張貼留言

歡迎留言提問和討論 .... 😁