相信大家對於 Drone 並不陌生,這次來介紹 Drone 1.0 的新功能 (更多的 1.0 功能會陸續介紹,也可以參考之前的文章),叫做 promotion,為什麼作者會推出這功能呢?大家在團隊工作時,有些步驟真的無法導入 CI/CD 自動化流程,而是需要人工介入後,再做後續處理?相信一定會遇到此狀況,PM 或老闆看過沒問題後,才需要手動觸發流程,在此功能以前,都會麻煩工程師幫忙做後續自動化流程,但是有了 promotion,現在連 PM 都可以透過 Drone CLI 來自己做部署啦,這邊就是介紹給大家,如何透過 Drone CLI 指令來觸發已存在的工作項目。
[Read More]用 Ansible 安裝 Drone CI/CD 開源專案
相信大家對於 Drone 開源專案並不陌生,如果對於 Drone 不了解的朋友們,可以直接看之前寫的系列文章,本篇要教大家如何使用 Ansible 來安裝 Drone CI/CD 開源專案。目前 Drone 可以支援兩種安裝方式: 1. 使用 Docker 2. 使用 binary,如果您是進階開發者,可以使用 binary 方式來安裝,像是在 Debug 就可以透過 build binary 方式來測試。一般來說都是使用 Docker 方式來安裝,在使用 ansible 之前,請先準備一台 Ubuntu 或 Debian 作業系統的 VM 來測試。
[Read More]10 分鐘內用 Traefik 架設 Drone 搭配 GitHub 服務
這標題也許有點誇張,但是如果實際操作一次,肯定可以在 10 分鐘內操作完成。本篇來教大家如何用 Traefik 當作前端 Proxy,後端搭配 Drone 服務接 GitHub,為什麼會用 Traefik,原因很簡單,你可以把 Traefik 角色想成是 Nginx,但是又比 Nginx 更簡單設定,另外一點就是,Traefik 自動整合了 Let’s Encrypt 服務,您就不用擔心憑證會過期的問題。假如機器只會有一個 Drone 當 Host 的話,其實也可以不使用 Traefik,因為 Drone 其實也是內建自動更新憑證的功能。如果您對 Traefik 有興趣,可以直接參考底下兩篇文章
- 用 Traefik 搭配 Docker 快速架設服務 (內附教學影片)
- Traefik 搭配 Docker 自動更新 Let’s Encrypt 憑證 (內附教學影片)
開源專案 Gitea 支援 OAuth Provider
很高興看到 Gitea 正式支援 OAuth Provider 了,此功能經歷了四個月終於正式合併進 master 分支,預計會在 1.8 版本釋出,由於此功能已經進 master,這樣我們就可以把原本 Drone 透過帳號密碼登入,改成使用 OAtuh 方式了,增加安全性。但是在使用之前,Drone 需要合併 drone/go-login@3 及 drone/drone@2622。如果您會使用 Go 語言,不妨現在就可以來試試看了,透過 go build 來編譯原始碼。
[Read More]在 docker-in-docker 環境中使用 cache-from 提升編譯速度
在現代 CI/CD 的環境流程中,使用 Docker In Docker 來編譯容器已經相當流行了,像是 GitLab CI 或 Drone 都是全走 Docker 環境,然而有很多人建議盡量不要在 CI 環境使用 Docker In Docker,原因在於 CI 環境無法使用 Host Image 資料,導致每次要上傳 Image 到 Docker Hub 時都需要重新下載所有的 Docker Layer,造成每次跑一次流程都會重複花費不少時間,而這個問題在 v1.13 時被解決,現在只要在編譯過程指定一個或者是多個 Image 列表,先把 Layer 下載到 Docker 內,接著對照 Dockerfile 內只要有被 Cache 到就不會重新再執行,講得有點模糊,底下直接拿實際例子來看看。
[Read More]有效率的用 jsonnet 撰寫 Drone CI/CD 設定檔
Drone 在 1.0 版本推出了用 jsonnet 來撰寫 YAML 設定檔,方便開發者可以維護多個專案設定。不知道大家有無遇過在啟動新的專案後,需要從舊的專案複製設定到新專案,或者是在 .drone.yml
內有非常多重複性的設定,假設 Go 語言的開源專案需要將執行檔包成 ARM64 及 AMD64 的映像檔,並且上傳到 Docker Hub,底下是 AMD64 的設定檔範例。剛好在 Udemy 課程內有學員詢問到相關問題。
|
|
用 Traefik 搭配 Docker 快速架設服務
更新: 2019.01.10 新增教學影片
相信大家在架設服務肯定會選一套像是 HAProxy, Nginx, Apache 或 Caddy,這四套架設的難度差不多,如果要搭配 Let’s Encrypt 前面兩套需要自己串接 (Nginx, Apache),而 Caddy 是用 Golang 開發裡面已經內建了 Let’s Encrypt,,管理者不用擔心憑證過期,相當方便。但是本篇我要介紹另外一套工具叫 Traefik,這一套也是用 Go 語言開發,而我推薦這套的原因是,此套可以跟 Docker 很深度的結合,只要服務跑在 Docker 上面,Traefik 都可以自動偵測到,並且套用設定。透過底下的範例讓 Traefik 串接後端兩個服務,分別是 domain1.com
及 domain2.com
。來看看如何快速設定 Traefik。
Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具
Drone CI/CD 推出 Cloud 服務支援開源專案
Drone 支援單機版安裝 (內附影片)
在上週寫了『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。
[Read More]