尝试在docker中使用dep安装依赖项

时间:2018-09-30 14:02:31

标签: docker go dependencies dockerfile

我创建了一个docker文件,其中安装了golang dep工具,该工具将用于安装golang项目所需的依赖项。我已经能够安装该工具。但是无法使用该工具安装依赖项。我不确定如何配置dep工具以能够在docker映像中运行dep命令,它将安装golang项目所需的所有依赖项

我正在使用以下命令运行dep工具,它在本地计算机上正常工作

# initialize the project and install dependencies
RUN dep init

我总是遇到错误:

  

init失败:无法确定根项目的导入路径   / go:/ go不在任何GOPATH / src中

现在,我不知道是否需要设置二进制文件的路径或如何实现该目的。有一些教程可以构建docker文件来构建golang项目,但是互联网上没有任何可以使用golang dep工具安装依赖项的软件。

2 个答案:

答案 0 :(得分:5)

以下是带有dep的Dockerfile的示例:

FROM golang:latest 

LABEL version="1.0"

RUN mkdir /go/src/app

RUN go get -u github.com/golang/dep/cmd/dep

ADD ./main.go /go/src/app
COPY ./Gopkg.toml /go/src/app

WORKDIR /go/src/app 

RUN dep ensure 
RUN go test -v 
RUN go build

CMD ["./app"]

答案 1 :(得分:0)

您需要将目录更改为项目目录。另外,为了获得依赖关系,通常已经有了一个Gopkg.toml,并且Gopkg.lock-dep init仅在从使用其他供应商工具的项目中移出时才使用,没有完全没有供应商,或者您正在从头开始一个项目。

总而言之,我会做这样的事情:

FROM golang:latest
RUN go get -u github.com/golang/dep/cmd/dep \
&&  mkdir /go/src/github.com/you \
&&  git clone https://github.com/you/yourproject /go/src/github.com/you/yourproject

WORKDIR /go/src/github.com/you/yourproject

RUN dep ensure -v
&&  go build

CMD ["./yourproject"]