当前位置: 首页 > 面试题库 >

使用Go应用构建Docker:找不到软件包

轩辕华辉
2023-03-14
问题内容

我的Dockerfile位于src/myapp文件夹的根目录中,myapp包含myapp.go在主包中。

Dockerfile 看起来如下:

FROM golang:1.9.2

ADD . /
RUN go build myapp;

ENTRYPOINT ["/go/bin/myapp"]

我收到以下错误:

can't load package: package myapp: cannot find package "myapp" in any of:
    /usr/local/go/src/myapp (from $GOROOT)
    /go/src/myapp (from $GOPATH)

我究竟做错了什么?ls码头工人完成后可以登录命令ADD吗?


问题答案:

您正在将所有文件复制到Image根目录,未安装任何依赖项,尝试构建它,然后从运行二进制文件/go/bin/app。该目录中不存在二进制文件,并且正在生成错误。

我建议使用这样的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"]

这将执行以下操作。

  1. 将项目文件复制到/go/src/myapp
  2. 将工作目录设置为/go/src/myapp
  3. 安装依赖项,我使用了go get,但将其替换为您正在使用的任何依赖项管理工具。
  4. 安装/构建二进制文件。
  5. 设置入口点。

您可以使用运行ls命令或任何其他命令docker exec

例:

docker exec <image name/hash> ls

您还可以在生成的图像中输入外壳以使用

docker run --rm -it <image hash/name> /bin/sh


 类似资料:
  • 问题内容: 我有一个Jenkins作为docker容器运行,现在我想使用管道构建Docker映像,但是Jenkins容器总是告诉未找到Docker。 这是我运行詹金斯图像的方式: Jenkins映像的DockerFile是:https : //github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock

  • 使用Fabric-Client(成功)打包go文件 创建安装建议并将其发送到对等方(成功 创建和实例化建议并将其发送到对等方(失败,出现上述错误消息) 解决问题的步骤 我试图通过读取代码来断言chaincode容器创建过程是如何工作的。我从中得到了以下内容: -chaincode是使用fabric-ccenv映像构建的 -它加载一个。tar作为Inputstream(包?) 我试图将文件添加到go

  • 我正在尝试在docker文件上构建我的go应用程序。在我的内心深处。mod有一个需要身份验证/ssh的私有包。这个问题类似于在Docker中使用私有模块构建Go应用程序,但在我的情况下,我必须从而不是中提取包。这是我的dockerfile: 我试图按照这个教程https://divan.dev/posts/go_get_private/,通过更改到仍然失败。 以下是错误详细信息: 这里有人知道如何

  • 问题内容: 我正在尝试使用我的go应用程序创建一个docker映像。该应用程序(在MacOS上开发)取决于哪个,而又取决于我在Docker映像中安装的对象,如下所示: 我收到以下错误: 我/app/folder/vendor/github.com/confluentinc/confluent-kafka-go/kafka ../folder/vendor/github.com/confluenti

  • 我有一个Jenkins作为docker容器运行,现在我想使用管道构建docker映像,但Jenkins容器总是告诉docker not found。 以下是我如何运行我的詹金斯形象: Jenkins图像的DockerFile是:https://github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock

  • 工具 工欲善其事,必先利其器。笔者经过调研,有以下几款Docker的Maven插件进入笔者视野: 插件名称 官方地址 docker-maven-plugin https://github.com/spotify/docker-maven-plugin docker-maven-plugin https://github.com/fabric8io/docker-maven-plugin docke