prism

2015-07-09

How I deploy my golang binary

在網路上,有很多 Docker 的佈署的文章,或是用來測試的方式

用 golang 撰寫的服務,編譯成執行檔後,你可以有很多的選擇,例如:upstart , supervisord , 或是 daemontools

這一次,我想用 Docker ,想要他的彈性

但是,不管用 Ubuntu , Debian 或是官方的 Golang 的 image

總覺得 image 太大,不合用,直接由 scratch 做 image 又覺得,萬一有一些系統的相依套件,需要的時候,不方便

所以這是我目前的萬用 image 的 Dockerfile


FROM alpine:3.2
RUN apk --update add curl
WORKDIR /usr/src/app
ENTRYPOINT  ["/usr/src/app/goapp"]

實際的編譯執行檔,分資料夾放,名字都叫做 goapp,執行 container 的時候,用 -v 掛載進 container 的 /usr/src/app
golang 的程式記得可以用環境變數,更改一些執行的變數,像是,資料庫連結,等等,只要執行 container 時,用 -e 帶給 container

以後上新版的執行檔,就只要下 docker restart your_running_container 而已


image 裡安裝的 curl ,只是要順便把 ssl certificates 安裝,這樣就有 root certificates

這樣的 images 大小大約 8.7 MB ,夠小,也很快

颱風假的新聞

今天是難得的颱風假,看新聞總有一種怪怪的感覺

總是說電影院,或是 KTV 人滿為患,這些媒體記者

這麼多年了,角度總是沒變過

總沒人探討,為何,這些娛樂的營業場所,總是在颱風假,依就營業的問題

讓工作的人員,總是必須冒著生命安全受到侵害的危險,出門工作

就像是地方政府首長,做出對大家生命安全最安全的決定

你選擇,出門玩樂,那是你自由的選擇,但是,這些 KTV,電影院,或是百貨公司的從業人員

他們能選擇對自己安全的選擇嗎?