导入路径不以主机名开头



我有一个Go应用程序。它的一些依赖项在私人Github repo中,另一部分依赖项是我的应用程序文件夹中的本地包。该应用程序在我的计算机上编译和工作都没有问题(当我只是在没有docker的情况下编译它时(。我正在使用下面的Dockerfile。

FROM ubuntu as intermediate
# install git
RUN apt-get update
RUN apt-get install -y git

RUN mkdir /root/.ssh/
COPY github_rsa.ppk /root/.ssh/github_rsa.ppk
RUN chmod 700 /root/.ssh/github_rsa.ppk
RUN eval $(ssh-agent) && 
ssh-add /root/.ssh/github_rsa.ppk && 
ssh-keyscan -H github.com >> /etc/ssh/ssh_known_hosts && 
git clone git@github.myusername/shared.git

FROM golang:latest
ENV GOPATH=/go
RUN echo $GOPATH
ADD . /go/src/SCMicroServer
WORKDIR /go/src/SCMicroServer
COPY --from=intermediate /shared /go/src/github.com/myusername/shared
RUN go get /go/src/SCMicroServer
RUN go install SCMicroServer
ENTRYPOINT /go/src/SCMicroServer
EXPOSE 8080

与Git相关的第一个构建部分运行良好,它一直运行到第二部分中的这一行:RUN go get/go/src/SCMicroServer。我在提到的步骤中收到这个错误:

package SCMicroServer/controllers/package1:无法识别的导入路径"SCMicroServer:controllers/package1"(导入路径不以主机名开头(
命令"/bin/sh-c go get/go/src/SCMicroServer"返回非零代码:1

"SCMicroServer/controllers/package1"是我的应用程序文件夹(或其子文件夹(中的本地程序包之一,我的本地文件夹中还有更多。我正在Dockerfile中设置GOPATH env变量,所以我不确定我缺少了什么。

我找到了答案,这不是真正的Dockerfile问题,我在主文件中以两种不同的方式引用了我的包两次:

package1 "SCMicroServer/controllers/package1"
"SCMicroServer/controllers/package1"

删除第二个之后,我就不再接收错误了。

最新更新