本篇將教大家如何將 LINE Bot 使用 docker 的方式簡單的部署到 GCP 上。
本篇所使用的程式範例 code 都放置於 GitHub – hsuanchi/Flask-LINE-Bot-GCP 上,有興趣歡迎給星和 git clone 客製成自己的 LINE Bot 唷!
Table
一. 建立 LINE-Bot 機器人
1. 事前準備
首先建立 LINE develops 帳戶,請參考這篇 Flask – LINE Bot 教學 事前準備篇 (一)
- 確認取得 Channel secret
- 確認取得 Channel access token
2. 建立 Project
這次的範例 Code,都存放在這邊 Flask-LINE-Bot-GCP,歡迎 Fork 使用
2.1 先移動到資料夾 flask 的位置
1 |
$ cd /Flask-LINE-Bot-GCP/flask/ |
接下來我們會在資料夾中建立 .flaskenv
並將 token 環境變數放進去:
1 |
$ vim .flaskenv |
1 2 |
export CHANNEL_ACCESS_TOKEN="/pg7A9LjzlJ0Bxxxx...省略...cDnyilFU=" export CHANNEL_SECRET='9c5d20481...省略...f81f' |
2.2 再來需要建立 SSL Certificates,因為 LINE 只接收 Https 的協議,建議可以使用 https://www.sslforfree.com/ 提供的 SSL Certificates

將拿到的 ssl.csr 和 ssl.key 放在 nginx
資料夾中就完成,最後就只剩下部署到 GCP 上囉!
二. 建立 GCP 虛擬主機
在 Google Cloud Platform > 選 Compute Engine > 選建立 VM 執行個體,接下來會進入如下附圖畫面:

- 選擇想要的地區
- 選擇想要的機器類型
- 下方防火牆部分,要把允許 HTTP & HTTPS 流量打勾
筆者推薦主機部分可以選擇以下三個美國地區,和主機類型選 f1-micro VM 主機 (1 vCPU,0.6 GB 記憶體),因為會適用於 GCP 免費方案 (過試用期後,不會收費),可以參考 Google 官方文件 說明:
- 奧勒岡州:us-west1
- 愛荷華州:us-central1
- 南卡羅來納州:us-east1
三. 開始部署 LINE-Bot 於 GCP 上
建置好主機後,點擊下圖紅框框內 SSH 進入連線

首先先將權限切換到 root,待會安裝比較方便:
1 |
$ sudo su |
接下來我們會需要安裝 git & docker & docker-compose
1.安裝 Git
1 |
$ sudo apt-get install git |
2.安裝 curl & Docker
1 2 |
$ sudo apt-get install -y curl $ curl -s https://get.docker.com | sudo sh |
3.安裝 docker-compose
1 2 3 |
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose |
4.將剛剛建立好的專案 git clone 到虛擬主機中
1 |
$ git clone https://github.com/hsuanchi/Flask-LINE-Bot-GCP.git |
5.移動到資料節內,並使用 docker-compose 啟動
1 2 |
$ cd Flask-LINE-Bot-GCP $ docker-compose up --build |
最後只需要將 ip 位置放在 LINE 的 webhook url 上完成啦!

這一系列的 LINE Bot 實作教學,會帶大家使用 Flask + LINE Bot 快速打造聊天機器人,完整教學文章如下:
- [Flask – LINE Bot 教學] 事前準備篇
- [Flask – LINE Bot 教學] Heroku 一鍵自動部署
- [Flask – LINE Bot 教學] GCP 部署 (Docker+Flask+Nginx)
- 淺談 LINE-Bot 中的驗證機制 (HMAC & Bearer Token)
- [Side Project] LINE Bot 自動化工具 (附 Github 程式碼)
那麼[Flask 教學] LINE-Bot GCP 部署(Docker+Flask+Nginx) 將到這邊告一段落囉!如果有遇到任何問題,歡迎私訊或留言,我會盡快回覆您