[Go 語言] 從 graphql-go 轉換到 gqlgen

golang logo

相信各位開發者對於 GraphQL 帶來的好處已經非常清楚,如果對 GraphQL 很陌生的朋友們,可以直接參考之前作者寫的一篇『Go 語言實戰 GraphQL』,內容會講到用 Go 語言實戰 GraphQL 架構,教開發者如何撰寫 GraphQL 測試及一些開發小技巧,不過內容都是以 graphql-go 框架為主。而本篇主題會講為什麼我從 graphql-go 框架轉換到 gqlgen

Continue reading “[Go 語言] 從 graphql-go 轉換到 gqlgen”

用 GitHub Actions 上傳 Docker Image 到 AWS ECR

最近正打算使用 GitHub Actions 來串接 AWS 服務 (ECR + ECS),上網找了一堆 ECR 套件,發現就連 AWS 官方都只有實作 Login 進 ECR,後面編譯跟上傳動作就需要自己寫,可以看看底下是 AWS 官方套件的範例:

Continue reading “用 GitHub Actions 上傳 Docker Image 到 AWS ECR”

Docker 推出官方 GitHub Actions 套件

cover

去年 GitHub 推出 Actions,就有不少開發者相繼把 CI/CD 流程內會使用到的 Plugin 都丟到 Marktetplace,而在這 Docker 容器時代,肯定是需要用自動化上傳容器到 Docker Registry,而官方也在上週正式釋出第一版 GitHub Actions,雖然在 Marktet 尚有不少開發者已經有實現了此功能,但是官方既然推出了,就採用官方的套件會比較適合。底下我們來看看如何使用 Docker 推出的 GitHub Aciton 來自動化上傳 Docker Image。除了介紹如何使用 GitHub Action 上傳 Image 外,我也會拿 DroneDocker Plugin 來進行比較。

Continue reading “Docker 推出官方 GitHub Actions 套件”

停止 Go 服務前先處理完 Worker 內的 Job

golang logo

在閱讀本文章之前,作者有寫過一篇『graceful shutdown with multiple workers』介紹了在服務停止前做一些正確的 Shutdown 流程,像是處理 Http Handler 或關閉資料庫連線等等,假設有服務內有實作 Worker 處裡多個 Job,那該如何等到全部的 Job 都執行完畢才正確關閉且刪除服務 (使用 Docker) 呢?底下是整個運作流程:

Continue reading “停止 Go 服務前先處理完 Worker 內的 Job”

Go Modules 處理私有 GIT Repository 流程

golang

Golang1.14 正式說明可以將 Go Modules 用在正式環境上了,還沒換上 Go Modules 的團隊,現在可以開始轉換了,轉換方式也相當容易啦,只要在原本的專案底下執行底下指令,就可以無痛轉移

go mod init project_path
go mod tidy

假設專案內有用到私有 Git Repository 該怎麼解決了?現在 go mod 會預設走 proxy.golang.org 去抓取最新的資料,但是要抓私有的,就需要透過其他方式:

go env -w GOPRIVATE=github.com/appleboy

上面代表告訴 go 指令,只要遇到 github.com/appleboy 就直接讀取,不需要走 Proxy 流程。拿 GitHub 當作範例,在本機端開發該如何使用?首先要先去申請 Personal Access Token,接著設定 Git

git config --global url."https://$USERNAME:$ACCESS_TOKEN@github.com".insteadOf "https://github.com"

其中 Username 就是 GitHub 帳號,Access token 就是上面的 Personal Access Token

Continue reading “Go Modules 處理私有 GIT Repository 流程”

用五分鐘安裝好 Drone 搭配 GitHub 自動化環境

之前寫過一篇『用 10 分鐘安裝好 Drone 搭配 GitLab』。團隊內還沒導入自動化 CI/CD 測試部署環境的朋友們,可以來嘗試看看用 Go 語言打造的 Drone CI/CD 開源專案,不用五分鐘的時間就可以在您的電腦上安裝好 CI/CD 的流程,真的是簡單到不行,只要一個 docker-compose 檔案就可以完成架設了。

Continue reading “用五分鐘安裝好 Drone 搭配 GitHub 自動化環境”

用 Drone 部署靜態檔案到 GitHub Pages

新課程上架:『Docker 容器實用實戰』目前特價 $800 TWD,優惠代碼『20200222』,也可以直接匯款(價格再減 100),如果想搭配另外兩門課程合購可以透過 FB 聯絡我

GitHub 提供一個非常方便的功能,就是可以將靜態檔案部署在 GitHub 上,基本上開發者不用負擔任何 Host 費用,就可以使用靜態檔案來做 Demo 介紹,或者是文件系統。而本篇將教您如何用 Drone 來自動化部署靜態檔案到 GitHub 上。作者直接用 Vue.js 來介紹整個流程。

Continue reading “用 Drone 部署靜態檔案到 GitHub Pages”

使用 Docker 五分鐘安裝好 Gitea (自架 Git Hosting 最佳選擇)

新課程上架:『Docker 容器實用實戰』目前特價 $800 TWD,優惠代碼『20200222』,也可以直接匯款(價格再減 100),如果想搭配另外兩門課程合購可以透過 FB 聯絡我

Gitea

Gitea 在本週發佈了 1.11.0 版本,本篇就使用 Docker 方式來安裝 Gitea,執行時間不會超過五分鐘。Gitea 是一套開源的 Git Hosting,除了 Gitea 之外,您可以選擇 GitHub 或自行安裝 GitLab,但是我為什麼選擇 Gitea 呢?原因有底下幾點

  1. Gitea 是開源專案,全世界的開發者都可以進行貢獻
  2. Gitea 是 Go 語言所開發,啟動速度超快
  3. Gitea 開源社區非常完整,每年固定挑選三位為主要負責人
  4. Gitea 可以使用執行檔或 Docker 方式進行安裝

Gitea 目前發展方向就是自己服務自己,大家可能有發現原本在 GitHub 上面的 Repository 已經全面轉到 Gitea 自主服務了,這也代表著未來會全面轉過去,只是時間上的問題。Gitea 目前的功能其實相當完整,大家有興趣可以看這張比較表,新創團隊我都強烈建議使用 Gitea。

Continue reading “使用 Docker 五分鐘安裝好 Gitea (自架 Git Hosting 最佳選擇)”