Skip to content

快速参考

  • 由……维护
    基根·维特(来自 Groovy 项目),在 Gradle 项目的批准下

  • 何处获取帮助:
    Docker 社区 Slack、服务器故障、Unix & Linux 或 Stack Overflow

支持的标签及相应的 Dockerfile 链接

快速参考(续)

什么是 Gradle?

Gradle 是一种构建工具,专注于构建自动化以及对多语言开发的支持。如果你在任何平台上进行构建、测试、发布和部署软件,Gradle 提供了一个灵活的模型,能够支持从编译和打包代码到发布网站的整个开发生命周期。Gradle 被设计用于支持跨多种语言和平台的构建自动化,包括 Java、Scala、Android、C/C++ 和 Groovy,并且与包括 Eclipse、IntelliJ 和 Jenkins 在内的开发工具和持续集成服务器紧密集成。

logo

如何使用此图像

构建一个 Gradle 项目

从你想要构建的 Gradle 项目的目录中运行此操作。

docker run --rm -u gradle -v "$PWD":/home/gradle/project -w /home/gradle/project gradle gradle <gradle-task>

注意上述命令使用 uid/gid 1000(用户 gradle)运行以避免以 root 身份运行。

如果你正在挂载一个卷,并且运行 Docker 的 uid/gid 不是 1000,你应该以用户 root( -u root )运行。root 也是默认的,所以你也可以简单地不指定用户。

Java 21 支持

Java 21 当前不支持使用 Kotlin 进行构建自定义(例如在 buildSrc 脚本中使用 kotlin-dsl 插件)。对 Java 21 的完全支持将在未来的 Gradle 版本中提供。

图像变体

gradle 图像有多种类型,每种都针对特定的用例而设计。

gradle:<version>

这是事实上的镜像。如果你不确定自己的需求是什么,你可能想要使用这个。它被设计既可用作一次性容器(挂载你的源代码并启动容器以启动你的应用程序),也可用作构建其他镜像的基础。

其中一些标签可能包含诸如“focal”或“jammy”之类的名称。这些是 Ubuntu 发行版的套件代号,表明该镜像基于哪个发行版。如果你的镜像需要安装除镜像自带之外的任何其他软件包,你可能希望明确指定其中之一,以便在 Ubuntu 有新版本发布时最大程度地减少损坏。

gradle:<version>-alpine

此镜像基于流行的 Alpine Linux 项目,在 alpine 官方镜像中可用。Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此通常会生成更精简的镜像。

当尽可能小的最终镜像大小是你主要关心的问题时,这个变体很有用。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及其同类,所以软件通常会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的镜像的一些优缺点比较的更多讨论,请参阅此 Hacker News 评论线程。

为了最小化镜像大小,在基于 Alpine 的镜像中包含额外的相关工具(例如 gitbash )是不常见的。使用此镜像作为基础,在你自己的 Dockerfile 中添加你需要的东西(如果你不熟悉,可查看 alpine 镜像描述以获取如何安装软件包的示例)。

许可证

查看此映像中包含的软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 gradle/ 目录中找到。

对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的任何相关许可证。