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

Quarkus Jib使用自定义entrypoint脚本运行容器报权限错误如何解决

问题原因

报错核心是镜像内的/docker/run-java.sh脚本缺少可执行权限,Quarkus Jib扩展本身支持自定义文件权限,无需依赖原生Maven Jib插件的额外配置。

解决方案

方案一:通过Quarkus配置直接指定脚本权限

在application.properties中新增权限配置即可,Quarkus Jib会在构建镜像时自动为对应路径设置指定权限:

# 为自定义entrypoint脚本设置755权限(所有者可读可写可执行,其他用户可读可执行)
quarkus.jib.permissions."/docker/run-java.sh"=755

原有配置无需修改,重新构建镜像部署即可生效。

方案二:修改entrypoint调用方式,绕过执行权限校验

无需修改文件权限,直接调整entrypoint为用shell解释器执行脚本即可,修改原有entrypoint配置为:

quarkus.jib.jvm-entrypoint=/bin/sh,/docker/run-java.sh
quarkus.jib.environment-variables."JAVA_APP_DIR"=/work 

这种方式适配性更强,不受跨平台文件权限丢失的问题影响。

方案三:本地预先设置脚本可执行权限

在本地开发环境为src/main/jib/docker/run-java.sh添加可执行权限后再构建镜像:

# Linux/macOS环境执行
chmod +x src/main/jib/docker/run-java.sh

Jib默认会保留本地文件的权限属性到镜像内,该方案不适合Windows开发环境,容易出现跨平台权限丢失问题。

注意事项

如果脚本开头定义了shebang,需要确保镜像内存在对应的解释器,比如shebang为#!/bin/bash时,基础镜像需要预装bash,否则也会触发类似执行失败报错。


内容的提问来源于stack exchange,提问作者Bożek Mariusz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:24:03