我创建了一个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工具安装依赖项的软件。
答案 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"]