【问题标题】:How to avoid start of Gradle daemon inside Dockerfile如何避免在 Dockerfile 中启动 Gradle 守护进程
【发布时间】:2020-04-25 19:47:14
【问题描述】:

我有以下 Dockerfile:

FROM gradle:6.3-jdk8 as builder
WORKDIR /
COPY . /
RUN gradle shadow --no-daemon
EXPOSE 9999
CMD ["java", "-jar", "search-all.jar"]

我想避免每次构建映像时启动 Gradle 守护程序。是否有任何可能性或解决方法来实现这一目标?我提到了--no-daemon,但它仍在启动中。

【问题讨论】:

    标签: docker gradle dockerfile gradle-daemon


    【解决方案1】:

    这个问题已经在 Gralde 论坛上有广泛的答案:Using –no-daemon, but still see a process called “Gradle Worker Daemon 1”

    简而言之:Gradle 守护进程是执行构建并始终启动的进程,无论命令行上指定了什么。如果指定--no-daemon,则构建完成后进程终止。

    Gradle 论坛的原始答案:

    我的问题是为什么在我们指定 --no-daemon 时会创建守护进程?

    无论您启用还是禁用守护程序,Gradle 运行以执行构建的过程都是相同的。构建完成后进程的行为有所不同。

    启用守护程序后,进程将继续在后台运行,并可重复用于后续构建。禁用守护程序后,该进程将在构建结束时终止。即使禁用了守护程序,您仍然会看到一个标记为守护程序的进程。这并不意味着它会像守护进程一样继续在后台运行。

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2020-05-27
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多