使用本地程序包构建docker时,错误'导入路径不以hostname'开头
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用本地程序包构建docker时,错误'导入路径不以hostname'开头相关的知识,希望对你有一定的参考价值。
我正在尝试使用本地程序包构建一个docker但是得到错误'import path不以hostname'开头。如果我的理解是正确的,我的Dockerfile应该是正确的
FROM golang:onbuild
EXPOSE 8080
基于这篇文章Deploying Go servers with Docker
我使用此代码git-go-websiteskeleton作为构建docker的源代码。完整的错误在这里。
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
为简单的情况提供了紧凑的Dockerfiles,但它不会获取您的依赖项。
您可以使用构建应用程序所需的步骤编写自己的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下公开它。
另一答案
试试:
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"]
以上是关于使用本地程序包构建docker时,错误'导入路径不以hostname'开头的主要内容,如果未能解决你的问题,请参考以下文章
Docker:尝试使用本地 CircleCI 构建连接到 Docker 守护程序时权限被拒绝
使用 docker 构建时出现 pkg_config_path 错误
在本地运行 GitLab 和 GitLab-Runner docker 实例时,管道中的构建步骤因连接被拒绝错误而失败