首页  >  文章  >  后端开发  >  为什么我的 Docker 镜像找不到我的 Go 包?

为什么我的 Docker 镜像找不到我的 Go 包?

Patricia Arquette
Patricia Arquette原创
2024-11-04 18:20:02440浏览

Why Can't My Docker Image Find My Go Package?

Docker 构建问题:找不到 Go 包

尝试使用 Go 应用程序构建 Docker 镜像,您可能会遇到错误“can 't load package: package myapp: Cannot find package"。

问题背景

您的 Dockerfile 指示构建过程将所有文件复制到映像根目录,然后构建并从 /go/bin/myapp 运行 myapp 二进制文件。但是,这种方法会导致错误,因为在该目录中找不到二进制文件。

解决方案

相反,请修改您的 Dockerfile,如下所示:

FROM golang:1.9.2
ADD . /go/src/myapp
WORKDIR /go/src/myapp
RUN go get myapp
RUN go install
ENTRYPOINT ["/go/bin/myapp"]

更新后的 Dockerfile 将执行以下步骤:

  1. 将项目文件复制到镜像中的 /go/src/myapp。
  2. 将工作目录设置为 /go /src/myapp。
  3. 使用适当的依赖项管理工具安装依赖项。
  4. 构建并安装 myapp 二进制文件。
  5. 设置入口点。

其他故障排除

如果需要,您可以在每个 ADD 命令之后使用 docker exec 验证容器的文件结构。 ls.

要更详细地检查映像,请使用 docker run --rm -it 在生成的映像中输入 shell /bin/sh。

以上是为什么我的 Docker 镜像找不到我的 Go 包?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn