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

Docker容器启动报错:exec "/app/producer"权限被拒绝求助

解决OCI Runtime权限拒绝问题

针对你遇到的exec: "/app/producer": permission denied错误,可尝试以下几种方案:

1. 恢复执行权限设置

你注释掉了RUN chmod +x ./producer,取消注释这行命令,确保二进制文件拥有执行权限:

RUN chmod +x ./producer

即使编译阶段生成的文件有执行权限,跨阶段复制时可能因Alpine的默认权限配置丢失执行位,手动添加权限是最直接的修复方式。

2. 在COPY阶段直接设置权限

如果你的Docker版本≥1.24,可以使用COPY命令的--chmod参数,一步完成复制和权限配置,替代单独的chmod命令:

COPY --from=builder --chmod=755 /app/producer .

3. 强制静态编译二进制

虽然你已经设置了CGO_ENABLED=0,但部分依赖可能仍会生成动态链接的二进制。Alpine使用musl libc,可能与glibc编译的二进制不兼容,尝试添加-a参数强制静态编译:

RUN go build -a -o producer

这能确保二进制不依赖系统动态库,同时也能排除因动态链接问题导致的异常权限报错。

4. 验证Builder阶段的二进制权限

在builder阶段添加一行命令,检查生成的producer文件权限是否正常:

RUN go build -o producer && ls -l /app/producer

如果输出中没有x权限,说明编译阶段就没有生成可执行文件,需要检查Go项目的编译配置。

内容的提问来源于stack exchange,提问作者Eziz Durdyyev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:01:17