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

Dockerfile构建OPA服务报错:No such file or directory

解决OPA服务Docker构建失败的问题

问题根源

  • 指令语法错误:你把EXPOSE 8181这个Docker专属指令和chmod命令塞进了同一个RUN行里。Docker会把整行内容当作shell命令执行,chmod会误以为EXPOSE和8181是要修改权限的文件名,找不到这些文件就直接报错。
  • 二进制版本不兼容:你下载的是opa_darwin_amd64版本,这是给macOS系统用的可执行文件。而你的基础镜像是Alpine(Linux系统),就算权限设置正确,这个二进制文件也没法在Linux容器里运行。

修正后的Dockerfile

# Build OPA Service directory, load policies and data, install and run OPA daemon
FROM alpine:latest
RUN apk --no-cache add curl  
ADD $PWD/data /data
VOLUME /data
# 下载适配Linux amd64架构的OPA二进制文件
RUN curl -L -o opa https://openpolicyagent.org/downloads/v0.46.1/opa_linux_amd64
# 单独执行权限修改命令
RUN chmod 777 ./opa
# 单独声明容器要暴露的端口
EXPOSE 8181
CMD ./opa run -s ./data --skip-version-check

修改说明

  1. 拆分指令:把EXPOSE 8181从RUN命令里分离出来,作为独立的Docker指令,明确告知Docker要暴露8181端口。
  2. 替换二进制版本:将下载链接中的opa_darwin_amd64改为opa_linux_amd64,确保下载的是适配Linux环境的可执行文件。

内容的提问来源于stack exchange,提问作者Siva Prasad Koka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:03