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

Docker运行Golang项目报错:无法找到内部文件夹对应依赖包

问题根因

你的Dockerfile中只复制了项目根目录下的.go后缀文件,Repositories、Settings等子包目录没有被拷贝到容器的工作目录/app下。Go编译器在工作目录找不到对应包时,会默认去GOROOT路径下查找,最终触发路径不匹配的报错。

修复方案

修改Dockerfile中的文件复制逻辑,将当前项目的所有文件(包含子目录)全部复制到容器工作目录即可:

  • 将原Dockerfile中的COPY *.go ./替换为COPY . ./
  • 可选操作:如果有不需要传入容器的文件(如本地编译产物、.git目录等),可在项目根目录新增.dockerignore文件,写入对应排除规则

修改后完整Dockerfile示例

FROM golang:1.17-alpine

WORKDIR /app

COPY go.mod ./
COPY go.sum ./
RUN go mod download

# 复制全部项目文件,包含子包目录
COPY . ./

RUN go env GOROOT
RUN go build -o /my-api

EXPOSE 8080

CMD [ "/my-api" ]

修改后重新执行docker build即可正常完成编译。

内容的提问来源于stack exchange,提问作者Roberto Rizzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:18:01