当尝试使用本地包构建 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中文网其他相关文章!