如何避免在 Dockerfile 中启动 Gradle 守护进程
How to avoid start of Gradle daemon inside Dockerfile
我有以下 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
但它仍在启动。
这个问题在 Gralde 论坛上已经有了广泛的答案:Using –no-daemon, but still see a process called “Gradle Worker Daemon 1”。
简而言之:Gradle 守护进程是执行构建并始终启动的进程,无论在命令行上指定了什么。如果指定 --no-daemon
,则在构建完成后进程终止。
来自 Gradle 论坛的原始答案:
My question is why is the daemon being created when we specify --no-daemon?
运行 由 Gradle 执行构建的过程是相同的,无论您是否启用或禁用守护进程。构建完成后进程的行为是不同的。
启用守护进程后,该进程将在后台继续 运行ning,并可重复用于后续构建。在禁用守护程序的情况下,该过程在构建结束时终止。即使禁用了守护进程,您仍然会看到一个标记为守护进程的进程。这并不意味着它会像守护进程一样在后台继续 运行ning。
我有以下 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
但它仍在启动。
这个问题在 Gralde 论坛上已经有了广泛的答案:Using –no-daemon, but still see a process called “Gradle Worker Daemon 1”。
简而言之:Gradle 守护进程是执行构建并始终启动的进程,无论在命令行上指定了什么。如果指定 --no-daemon
,则在构建完成后进程终止。
来自 Gradle 论坛的原始答案:
My question is why is the daemon being created when we specify --no-daemon?
运行 由 Gradle 执行构建的过程是相同的,无论您是否启用或禁用守护进程。构建完成后进程的行为是不同的。
启用守护进程后,该进程将在后台继续 运行ning,并可重复用于后续构建。在禁用守护程序的情况下,该过程在构建结束时终止。即使禁用了守护进程,您仍然会看到一个标记为守护进程的进程。这并不意味着它会像守护进程一样在后台继续 运行ning。