使用 Docker Compose 快速建立 Ghost

在上次安裝 CoreOS 後,首先搬家就是 Blog 了!
先到 Ghost 的 Docker Hub 看看,看似相當地簡單。

Docker Compose

雖然可以直接使用 docker run 指令來完成,但我採用了可重用的方式,docker compose 是 Docker 官方的應用,可以把 docker run 的指令都記錄在 YAML 檔中,只要用 docker-compose up 指令就可以隨時運行內裡的一連串指令,不用每次都全部記住。

安裝 Docker Compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /opt/bin/docker-compose

使用官方的連結下載最新的 docker-compose 來安裝

$ sudo chmod +x /opt/bin/docker-compose

然後更改一下權限就完成了

$ sudo docker-compose --version
docker-compose version 1.22.0, build f46880fe

設定 docker-compose.yml

先建立一個 docker-compose.yml 檔來存放設定

我因為用了預設定 sqlite3 作 database
所以不用設定 MySQL,比官方的 docker-compose 更簡單
另外因為 container 使用的是 image,要更改設定或檔案只要幾個方法

  1. 使用 image 本身設定好的 environment 去設定,通常最常見的設定也可以修改,也是最建議使用的方法。
  2. 把 image 內的原本的檔案 mount 到外面,那麼 docker run 的時候會把檔案複製到外面,然後你直接改外面的檔案就可以,這個例子就 mount 了 content 出來。
  3. 把更改了設定的 image 重新打包,但我覺得這樣會污染了原 image,也不利版本更新,盡量不會這樣做。

有幾點設定時需要注意

正式運作

東西都設定好了就可以運作了,只要用指令 sudo docker-compose up 就可以開始運作

Creating 256pages-blog ... done
Attaching to 256pages-blog
...
256pages-blog         | [2018-07-27 09:20:03] INFO Ctrl+C to shut down
256pages-blog         | [2018-07-27 09:20:03] INFO Ghost boot 4.801s

測試過沒有問題按 Ctrl + C 退出
然後就可以正式運作,在最後加上 -d 就可以保持一直運作!
sudo docker-compose up -d

那麼網址怎麼辦?

網址要靠 nginx proxy 去解決
下回再教用 docker-compose 部署 nginx proxy 同時自動申請免費 SSL 證書!