首页  >  文章  >  后端开发  >  为什么在构建 Docker 映像时收到'导入路径不以主机名开头”错误?

为什么在构建 Docker 映像时收到'导入路径不以主机名开头”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-03 16:57:30514浏览

Why Am I Receiving a

Docker 构建错误:“导入路径不以主机名开头”

当尝试使用本地包构建 Docker 镜像时,用户可能会遇到错误“导入路径不以主机名开头。”当构建 Dockerfile 时,打算利用本地包作为依赖项,就会出现此问题。

对于简单的 Dockerfile,用户通常会创建一个类似于以下内容的文件:

FROM golang:onbuild
EXPOSE 8080

此格式遵循“使用 Docker 部署 Go 服务器”一文中概述了方法。将“git-go-websitesculpture”中的代码集成为构建源时,可能会出现以下错误:

import "git-go-websiteskeleton/app/common": import path does not begin with hostname
package git-go-websiteskeleton/app/common: unrecognized import path "git-go-websiteskeleton/app/common"
import "git-go-websiteskeleton/app/home": import path does not begin with hostname
package git-go-websiteskeleton/app/home: unrecognized import path "git-go-websiteskeleton/app/home"
import "git-go-websiteskeleton/app/user": import path does not begin with hostname
package git-go-websiteskeleton/app/user: unrecognized import path "git-go-websiteskeleton/app/user"

根本原因是应用程序构建发生在 Docker 容器内,要求依赖项可访问

要纠正此错误,请超越“golang:onbuild”的基本语法。编写自定义 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

这会修改 Dockerfile 以将源代码和依赖项合并到容器中。随后,它构建您的应用程序,启动其执行,并指定端口 8080 用于外部访问。

以上是为什么在构建 Docker 映像时收到'导入路径不以主机名开头”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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