iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Software Development

Gradle 通靈術系列 第 8

第八天:用 Docker 運行 Gradle

昨天介紹的全手動安裝是對系統掌控的一種極端,而今天要介紹的,是對系統潔癖的另一種極端。假如你受夠了要跟作業系統的套件管理工具奮戰、也討厭在自己的工作機上裝一堆開發工具以及它們的相依套件的話,那今天就跟大家分享如何用 Docker 來乾淨安裝 JDK 及 Gradle,還可以用完就丟呢!

安裝 Docker 運行環境

首先我們得先建立一個可以運行 Docker 的環境。假如您的工作機是 Ubuntu 的話,可以參考官網的 這份文件 來安裝。這邊將指令節錄如下:

# 設定 Repository
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    
# Docker 官方 GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 指定 Stable Repository,這邊以 AMD64 為例,若是 ARM 機器請參考官網文件更換指令
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
# 安裝 Docker 引擎
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io  

假如您是使用 macOS 或 Windows 的話,那我會推薦安裝 Docker Desktop 。直接到官網依照使用的作業系統下載安裝檔(macOS 是一個 .dmg 檔、Windows 則是一個 .exe 檔)後,依照安裝程式的指示完成安裝即可。

不論是用以上哪種方式安裝,完成後可以在終端機裡輸入指令測試一下是否成功:

$ docker --version

註:近期 Docker 更新了使用條款,別忘了檢查一下自己的使用範圍是否有需要做出對應的動作喔!

使用 Docker 運行 Gradle

前置作業都完成後,要用 Docker 運行 Gradle 就很容易,直接參考 Docker Hub 上 Gradle Image 的說明 ,使用一行指令就可以運行 Gradle:

$ docker run --rm -u gradle -v "$PWD":/home/gradle/project -w /home/gradle/project gradle:latest gradle
Unable to find image 'gradle:latest' locally
latest: Pulling from library/gradle
35807b77a593: Already exists
93d71b8f96bb: Pull complete
eec3d23cb0f5: Pull complete
cc785331fab3: Pull complete
817a59667772: Pull complete
849913fe157c: Pull complete
Digest: sha256:0c1dd8913...
Status: Downloaded newer image for gradle:latest

Welcome to Gradle 7.2!

Here are the highlights of this release:
 - Toolchain support for Scala
 - More cache hits when Java source files have platform-specific line endings
 - More resilient remote HTTP build cache behavior

For more details see https://docs.gradle.org/7.2/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

BUILD SUCCESSFUL in 1m 1s
1 actionable task: 1 executed

雖然用 Docker 跑 Gradle 還蠻方便的,可是每次要用都要打這麼長一串指令也太累人了吧!這時我們可以運用 Bash Alias 的技巧,直接把這一長串的指令縮短成一句。打開你的 .bash_profile.zshrc 設定檔,在裡面加這一行:

alias gradle="docker run --rm -u gradle -v \"$PWD\":/home/gradle/project -w /home/gradle/project gradle:latest gradle"

重新載入環境後,未來只要在終端機裡打 gradle 指令,就會使用最新版的 Gradle 來執行。若本機還沒有最新版的 Gradle Image,Docker 也會自動下載,非常方便。在這邊提醒一下,每次在使用 Docker 前,別忘了要先確認 Docker Daemon 已經在背景運行喔!

適用情境

假如你對工作機的「乾淨」程度有很高的要求,也熟悉 Docker 指令操作的話,那這個方法就非常適合您!甚至本篇教得技巧也可以應用在不同程式語言的工具上呢!

參考資料


上一篇
第七天:手動安裝 Gradle
下一篇
第九天:使用 Gradle Wrapper
系列文
Gradle 通靈術24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言