使用本地程序包构建docker时,错误'导入路径不以hostname'开头

问题描述 投票:12回答:2

我正在尝试使用本地程序包构建一个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"

谢谢你的帮助。

go docker dockerfile
2个回答
1
投票

应用程序构建在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下公开它。


1
投票

试试:

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"]
© www.soinside.com 2019 - 2024. All rights reserved.