【问题标题】:Error 'import path does not begin with hostname' when building docker with local package使用本地包构建 docker 时出现错误“导入路径不以主机名开头”
【发布时间】:2015-06-28 18:23:36
【问题描述】:

我正在尝试使用本地包构建 docker,但收到错误“导入路径不以主机名开头”。如果我的理解是正确的,我的 Dockerfile 应该只是

FROM golang:onbuild
EXPOSE 8080

基于本文Deploying Go servers with Docker

我使用此代码 git-go-websiteskeleton 作为构建 docker 的源代码。完整的错误在这里。

导入“git-go-websiteskeleton/app/common”:导入路径不以主机名开头 包 git-go-websiteskeleton/app/common:无法识别的导入路径“git-go-websiteskeleton/app/common” 导入“git-go-websiteskeleton/app/home”:导入路径不以主机名开头 包 git-go-websiteskeleton/app/home:无法识别的导入路径“git-go-websiteskeleton/app/home” 导入“git-go-websiteskeleton/app/user”:导入路径不以主机名开头 包 git-go-websiteskeleton/app/user:无法识别的导入路径“git-go-websiteskeleton/app/user”

感谢您的帮助。

【问题讨论】:

  • 您是否按照自述文件中的说明进行操作? git-go-websiteskeleton 不在你的 GOPATH 中。
  • @JimB 如果您的意思是在我的开发机器中,我可以很好地运行该项目。仅在尝试构建 docker 时遇到问题。
  • 那你如何将 git-go-websiteskeleton 添加到图像中?向我们展示你所做的一切,这样我就不必猜测了。
  • 谢谢@JimB。我的问题可能不够清楚。这就是我所做的。我将项目克隆到我的 src 文件夹并运行 main.go ,它工作正常。我可以在我的机器上浏览到 localhost:8080。然后我创建了一个 Dockerfile,里面只有“FROM golang:onbuild EXPOSE 8080”。然后我运行命令“docker build -t git-go-websitesskeleton”。然后我得到了错误。我对 docker 很陌生,但我认为我需要在 Dockerfile 中添加更多指令。我只是不太确定,因为link 说我只能添加这个“FROM golang:onbuild EXPOSE 8080”。
  • 您也需要了解 onbuild dockerfile 在做什么。您不需要它,最好在您更好地了解发生的情况之前停止使用它。

标签: go docker dockerfile


【解决方案1】:

应用程序是在 docker 容器内构建的,您需要在构建时提供可用的依赖项。

golang:onbuild 为简单的情况提供了紧凑的 Dockerfile,但它不会获取您的依赖项。

您可以编写自己的 Dockerfile,其中包含构建应用程序所需的步骤。根据您的项目的外观,您可以使用以下内容:

FROM golang:1.6
ADD . /go/src/yourapplication
RUN go get github.com/jadekler/git-go-websiteskeleton
RUN go install yourapplication
ENTRYPOINT /go/bin/yourapplication
EXPOSE 8080

这会将您的源代码和依赖项添加到容器中,构建您的应用程序,启动它,并在端口 8080 下公开它。

【讨论】:

    【解决方案2】:

    试试:

    FROM golang:latest
    RUN mkdir /go/src/app
    WORKDIR /go/src/app
    ADD ./HelloWorld.go ./
    RUN go get
    RUN go build -o main .
    CMD ["/go/src/app/main"]
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      相关资源
      最近更新 更多