我正在尝试使用docker编译golang项目,我无法获得“go get”来为我编译包。容器的整个设置可以在我的dockerfile中看到:
FROM buildpack-deps:jessie-scm
# gcc for cgo
RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
gcc \
libc6-dev \
make \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
ENV GOLANG_VERSION 1.8
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
ENV GOLANG_DOWNLOAD_SHA256 53ab94104ee3923e228a2cb2116e5e462ad3ebaeea06ff04463479d7f12d27ca
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
&& tar -C /usr/local -xzf golang.tar.gz \
&& rm golang.tar.gz
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
ENV CGO_ENABLED 0
ENV GOOS linux
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
WORKDIR $GOPATH
RUN go get github.com/lib/pq
ENTRYPOINT ["go", "get", "."]
我构建了这个容器,然后使用它来编译我的go代码:
sudo docker run --rm -v /path/to/my/project:/usr/src/main -w /usr/src/main go:compiler
这会在我的项目文件夹中找到main.go,读取它...但在遇到我的import语句时给出了这个错误:
从我在文档中找到的内容来看,我的理解是导入路径应该是src中的文件夹,即在我的情况下是“main”,后面是目录结构..我做错了什么?我使用go得到错误吗?无法识别的导入路径“main / testPackage”(导入路径没有 从主机名开始)