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

Quarkus应用Docker化时Maven资源插件报操作不允许错误

解决Quarkus容器化编译时的权限错误问题

问题原因

你遇到的Operation not permitted错误,根源是USER 185对容器内的/src目录没有写入权限:

  • 原Dockerfile中,WORKDIR /src是在root用户上下文执行的,所以/src目录的所有者是root
  • 切换到USER 185后,执行COPY . .只是复制文件,但/src本身的权限并未开放给185用户
  • 当mvnw compile尝试创建/src/target目录并写入application.yaml时,因权限不足失败

解决方案

方案1:提前设置目录权限

修改Dockerfile,先以root用户为USER 185配置/src目录的写入权限,再切换用户:

FROM adoptopenjdk/openjdk17:ubi

WORKDIR /src
# 将目录所有权转移给USER 185
RUN chown -R 185:185 /src

USER 185
COPY . .

CMD ["./mvnw","compile","quarkus:dev"]

方案2:复制文件时直接指定所有者

利用Docker的COPY --chown参数,在复制文件时直接将文件和目录的所有权设置为USER 185:

FROM adoptopenjdk/openjdk17:ubi

WORKDIR /src
# 复制时指定所有者为185
COPY --chown=185:185 . .

USER 185
CMD ["./mvnw","compile","quarkus:dev"]

补充说明

Quarkus默认生成的Dockerfile.jvm是先在本地打包好应用,再将编译产物复制到容器中,因此不需要在容器内执行编译操作,自然不会触发权限问题。如果要保留容器内编译开发的模式,必须确保运行用户对工作目录拥有完整的读写权限。

内容的提问来源于stack exchange,提问作者Sergio Agüero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:59:57