很高興收到 GitHub 的 Beta 邀請函來開始試用 GitHub Package Registry 相關功能,從說明文件可以知道目前 Registry 支援了好幾種 Package 像是 npm, gem, docker, mvn 及 nuget,這篇主要跟大家介紹如何用 Drone 快速串接 CI/CD 流程的『自動上傳 Docker Image 到 GitHub Registry』,底下來看看如何使用 GitHub 提供的 Docker Registry。
教學影片
更多實戰影片可以參考我的 Udemy 教學系列
- Go 語言實戰課程: http://bit.ly/golang-2019
- Drone CI/CD 自動化課程: http://bit.ly/drone-2019
GitHub 認證
要登入 GitHub 的 Docker Registry,最快的方式就是用個人的帳號及密碼就可以直接登入,而 Registry 設定則是 docker.pkg.github.com
,這邊請注意,雖然官方有寫可以用個人的 Password 登入,如果你有使用 OTP 方式登入,這個方式就不適用,也不安全,我個人強烈建議去後台建立一把專屬的 Token。
其中 read:packages
and write:packages
兩個 scope 請務必勾選,如果是 private 的 repo,再把 repo
選項打勾,這樣就可以拿到一把 token 當作是密碼,你可以透過 docker login
來登入試試看
串接 Drone CI/CD
從 commit 到自動化上傳 Docker Image 可以透過 Drone 快速完成,底下我們先建立 Dockerfile
|
|
接著透過 Drone 官方 docker 套件來完成自動化上傳
|
|
比較需要注意的是 GitHub 跟 DockerHub 不同的是,GitHub 格式是 OWNER/REPOSITORY/IMAGE_NAME
,注意中間有多一個 REPOSITORY
而 DockerHub 是 OWNER/IMAGE_NAME
。接著到後台將 docker_password
設定完成,就可以正確部署了。
See also
- 開源專案 Drone CI/CD 平台真的免費嗎?
- Go 1.16 推出 Embedding Files
- 用 Docker 每天自動化備份 MySQL, Postgres 或 MongoDB 並上傳到 AWS S3
- 如何將前端網站打包成 Docker Image
- Go 1.15 新增 Module cache 環境變數
- 使用 Docker BuildKit 加速編譯 Image
- 用 GitHub Actions 上傳 Docker Image 到 AWS ECR
- Docker 推出官方 GitHub Actions 套件
- Go Modules 處理 Private GIT Repository 流程
- 用五分鐘安裝好 Drone 搭配 GitHub 自動化環境