用 Traefik 搭配 Docker 快速架設服務

更新: 2019.01.10 新增教學影片

drone traefik docker deploy

相信大家在架設服務肯定會選一套像是 HAProxy, Nginx, ApacheCaddy,這四套架設的難度差不多,如果要搭配 Let’s Encrypt 前面兩套需要自己串接 (Nginx, Apache),而 Caddy 是用 Golang 開發裡面已經內建了 Let’s Encrypt,,管理者不用擔心憑證過期,相當方便。但是本篇我要介紹另外一套工具叫 Traefik,這一套也是用 Go 語言開發,而我推薦這套的原因是,此套可以跟 Docker 很深度的結合,只要服務跑在 Docker 上面,Traefik 都可以自動偵測到,並且套用設定。透過底下的範例讓 Traefik 串接後端兩個服務,分別是 domain1.comdomain2.com。來看看如何快速設定 Traefik。

traefik + docker + golang

Continue reading “用 Traefik 搭配 Docker 快速架設服務”

Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具

相信各位 Go 語言開發者陸陸續續都將專案從各種 Vendor 工具轉換到 Go Module,本篇會帶大家一步一步從舊專案轉換到 Go Module,或是該如何導入新專案,最後會結合 CI/CD 著名的兩套工具 TravisDrone 搭配 Go Module 測試。

Continue reading “Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具”

用 Docker 整合測試 Flutter 框架

Flutter 是一套以 Dart 語言為主體的手機 App 開發框架,讓開發者可以寫一種語言產生 iOS 及 Android,只要裝好 Flutter 框架,就可以在個人電腦上面同時測試 iOS 及 Android 流程,如果您需要 Docker 環境,可以直接參考此開源專案,裡面已經將 Flutter 1.0 SDK 包在容器,只要將專案目錄掛載到 Docker 內,就可以透過 flutter test 指令來完成測試,對於 CI/CD 流程使用 Docker 技術非常方便。 Continue reading “用 Docker 整合測試 Flutter 框架”

將 Flickr 相簿備份到 Google Photos

Flickr2019 年一月會開始將免費會員照片刪除到剩下 1000 張,這次透過 Go 工具 來將備份好的 Flickr 相簿上傳到 Google Photos,此工具只適合用在 MacOS 及 Linux 上面,Windows 請改用『Backup and Sync from Google』工具。

*Free members with more than 1,000 photos or videos uploaded to Flickr have until Tuesday, January 8, 2019, to upgrade to Pro or download content over the limit. After January 8, 2019, members over the limit will no longer be able to upload new photos to Flickr. After February 5, 2019, free accounts that contain over 1,000 photos or videos will have content actively deleted — starting from oldest to newest date uploaded — to meet the new limit.

影片介紹

底下影片會帶大家一步一步將 Flickr 檔案備份到 Google Photos 服務上。

Drone CI/CD 推出 Cloud 服務支援開源專案

Screen Shot 2018-12-08 at 10.36.20 PM Drone 在上個月宣布推出 Cloud 服務 整合 GitHub 帳戶內的 Repo,只要登入後就可以跑 GitHub 上面的專案自動化整合及測試,原先在 GitHub 上面常見的就是 TravisCircleCI,現在 Drone 也正式加入角逐行列,但是從文中內可以看到其實是由 Packet 這間公司獨家贊助硬體及網路給 Drone,兩台實體機器,一台可以跑 X86 另外一台可以跑 ARM,也就是如果有在玩 ARM 開發版,現在可以直接在 Drone Cloud 上面直接跑測試。底下是硬體規格: Continue reading “Drone CI/CD 推出 Cloud 服務支援開源專案”

Flutter 推出 1.0 版本

Screen Shot 2018-12-05 at 10.25.34 AM 很高興看到台灣時間 12/5 號 Flutter 正式推出 1.0 版本,相信很多人都不知道什麼是 Flutter,簡單來說開發者只要學會 Flutter 就可以維護一套程式碼,並且同時編譯出 iOS 及 Android 手機 App,其實就跟 Facebook 推出的 React Native 一樣,但是 Flutter 的老爸是 Google。相信大家很常看到這一兩年內,蠻多新創公司相繼找 RN 工程師,而不是分別找兩位 iOS 及 Android 工程師,原因就在後續的維護性及成本。而 Flutter 也有相同好處。我個人覺得 RN 跟 Flutter 比起來,單純對入門來說,RN 是非常好上手的,但是如果您考慮到後續的維護成本,我建議選用 Flutter,雖然 Flutter 要學一套全新的語言 Dart,在初期時要學習如何使用 Widgets,把很多元件都寫成 Widgets 方便後續維護。但是在 RN 後期的維護使用了大量的第三方 Library,您想要升級一個套件可能影響到太多地方,造成不好維護。語言選擇 RN 可以使用純 JavaScript 撰寫,或者是導入 JS Flow + TypeScript 來達到 Statically Type,而 Flutter 則是使用 Dart 直接支援強型別編譯。如果現在要我選擇學 RN 或 Flutter 我肯定選擇後者。那底下來看看這次 Flutter 釋出了哪些新功能?對於 Flutter 還不了解的,可以看底下介紹影片。 Continue reading “Flutter 推出 1.0 版本”

Drone 支援單機版安裝 (內附影片)

Screen Shot 2018-11-26 at 11.40.28 AM 在上週寫了『Drone 推出 1.0.0 RC1 版本』介紹,裡面提到一個很重要的改變,就是 Drone 現在支援『單機版』安裝了,你會問什麼是單機版安裝?以前不就是可以支援在單台機器把 Drone 給架設起來,那在 1.0.0 RC1 版本指的是什麼意思?在之前的版本,要完整的安裝完成 Drone,需要架設 drone server 及 drone agent,但是在 1.0 版本之後,只需要一個 drone 服務,裡面就內建了 server 及 agent,這很適合用在團隊非常小的狀況底下來快速安裝 drone,假設團隊專案很多,或者是成長很快,建議還是將 server 及 agent 分開架設,未來只需要擴充 agent 即可,底下來看看該如何架設單機版 drone。 Continue reading “Drone 支援單機版安裝 (內附影片)”

開源專案 Drone 推出 1.0.0 RC1 版本

Screen Shot 2018-11-19 at 10.12.47 AM 終於看到 Drone 作者 bradrydzewski11/7 號釋出 1.0.0-RC1 版本,此版本尚未開源在 GitHub 上面,所以目前只能透過 docker 方式來安裝。另外如果您正在用 0.8.x 版本的,不建議現在轉換到 1.0 版本,原因有幾點,第一作者尚未公開原始碼,第二現在公開也才一週而已,還有很多 bug 以及用法都沒有在線上 document 寫很清楚,第三就是作者尚未提供工具從 0.8.x 升級到 1.0.0 RC 版本。根據上述的原因,建議大家先不要轉換,當然如果團隊尚未導入 CI/CD 的話,我強烈建議使用 1.0.0 RC-1 版本。底下來看看 1.0.0 RC-1 做了哪些變動? Continue reading “開源專案 Drone 推出 1.0.0 RC1 版本”