You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署卡在‘Starting a Gradle Daemon’的问题求助

解决方案

1. 更换为ARM64兼容的Gradle基础镜像

你的Dockerfile使用maven:3.6.3-jdk-11作为构建镜像,该镜像是x86架构,在M1系列ARM芯片上依赖Rosetta转译,易引发进程冻结问题。建议直接使用官方Gradle的ARM兼容镜像:

# 替换原build阶段的镜像
FROM gradle:7.5-jdk11 as build

若需强制使用x86镜像,可添加平台声明(需确保Docker Rosetta转译已开启):

FROM --platform=linux/amd64 gradle:7.5-jdk11 as build

2. 禁用Gradle Daemon执行构建

在构建命令中添加--no-daemon参数,跳过守护进程初始化,避免卡在Daemon启动环节:

RUN ./gradlew clean build -x integrationTest -x test --no-daemon

3. 添加.dockerignore减少构建上下文

创建.dockerignore文件,排除不必要的目录和文件,减少镜像拷贝内容,避免干扰Gradle构建:

.git
.gradle
build
*.log
src/test/resources
src/integration-test/resources

4. 配置Gradle JVM参数解决熵池阻塞

在Gradle构建命令前设置环境变量,解决随机数生成导致的阻塞问题:

ENV GRADLE_OPTS="-Xmx1024m -Djava.security.egd=file:/dev/./urandom"
RUN ./gradlew clean build -x integrationTest -x test --no-daemon

5. 调整Docker资源分配

打开Docker Desktop设置→Resources,将CPU分配提升至4核以上、内存分配提升至8G以上,M1芯片资源不足会导致构建进程无响应。

6. 本地验证Gradle构建正常

先在本地终端执行./gradlew clean build -x integrationTest -x test --no-daemon,确认本地构建能正常完成,排除项目本身配置问题。

内容的提问来源于stack exchange,提问作者Andrzej Pazdalski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:25:23