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

Windows11下Docker多阶段构建容器提示/myapp未找到的问题排查

问题原因及解决方案

核心原因

  • Windows环境下Go默认编译生成的是Windows平台的PE格式可执行文件,即便没有.exe后缀,其底层格式与Linux的ELF格式完全不兼容。Alpine作为Linux发行版,无法识别并运行Windows二进制文件,因此会出现/myapp: not found的错误(该提示具有误导性,实际并非文件不存在,而是系统无法解析文件格式)。

验证方法

进入第二阶段的Alpine容器,执行file /myapp命令查看文件格式,若输出包含PE32+ executable (console) x86-64, for MS Windows,即可确认是Windows格式的文件。

解决方案

修改构建阶段的go build命令,添加Linux平台的交叉编译参数:

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp .

参数说明:

  • CGO_ENABLED=0:禁用CGO,确保编译出静态链接的可执行文件,避免依赖Alpine系统的动态库
  • GOOS=linux:指定目标操作系统为Linux
  • GOARCH=amd64:指定目标架构为x86_64(若容器架构为arm64等其他类型,替换为对应值即可)

内容的提问来源于stack exchange,提问作者Daniel Stephens

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:04:55