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

时间:2015-04-21 14:15:01

标签: go docker dockerfile

我尝试使用本地软件包构建一个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"

感谢您的帮助。

2 个答案:

答案 0 :(得分: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 :(得分: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"]