第八天:用 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 指令操作的话,那这个方法就非常适合您!甚至本篇教得技巧也可以应用在不同程序语言的工具上呢!

参考资料


<<:  [Day 8] 从零开始的股票预测 - 技术指标与相关系数

>>:  离职倒数18天:重新开始思考一个科技业大家爱揶揄的话题「PM 到底在干嘛」

Day 12 - OOP 初探 (2) - Class

前言 昨天讲完 Javascript OOP 两个重要支柱,今天接着这个主题,来讲讲 class 吧...

Day 16 实作测试 (2)

前言 昨天我们写好了测试的 model,今天就来用他实作吧。 test_main 我们先从最简单的 ...

Day22 ( 游戏设计 ) 小玛莉游戏机

小玛莉游戏机 教学原文参考:小玛莉游戏机 这篇文章会介绍如何使用「函式」、「逻辑判断」、「当按钮按下...

Day28 Let's ODOO: ODOO.sh

Odoo.sh是Odoo提供的付费平台,只要有DB与程序码就会帮你建立Server,也因为是由Odo...

Innodb资料页结构-Part1(使用者纪录、空闲空间、页面中最小与最大的纪录)

前文提到页是Innodb的基本存取单位,一般为16kb,Innodb为了实现功能其实设计了许多不同类...