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

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

Mary-Kate Olsen
发布: 2024-11-03 16:57:30
原创
541 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板