去安装can';在Dockerfile中找不到我的内部包
因此,我尝试将我的项目归档,如下所示:去安装can';在Dockerfile中找不到我的内部包,docker,go,dockerfile,Docker,Go,Dockerfile,因此,我尝试将我的项目归档,如下所示: project/ main.go package1/ package2/ package3/ 它还需要一些外部包,比如github.com/gorilla/mux 请注意,我的项目位于github.company.com域的内部,因此我不确定这是否重要。 这是我的Dockerfile,是的,我的GOPATH和GOROOT已经设置好了,请不要只告诉我阅读。我有,现在仍然有这个问题 ### STAGE 1: Build ### FROM g
project/
main.go
package1/
package2/
package3/
它还需要一些外部包,比如github.com/gorilla/mux
请注意,我的项目位于github.company.com域的内部,因此我不确定这是否重要。
这是我的Dockerfile,是的,我的GOPATH和GOROOT已经设置好了,请不要只告诉我阅读。我有,现在仍然有这个问题
### STAGE 1: Build ###
FROM golang:1.10 as builder
WORKDIR /go/src/github.company.com/project-repo/project
COPY . .
RUN go get
RUN go install <- ERROR HERE
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o executable -a -installsuffix cgo .
### STAGE 2: Setup ###
FROM python:3.6-alpine
COPY --from=builder /go/src/github.company.com/project-repo/project/executable /api/executable
CMD ["/api/executable"]
并获取以下错误:
main.go: cannot find package github.company.com/project-repo/project/package1 in any of:
/usr/local/go/src/github.company.com/project-repo/project/package1 (from $GOROOT)
/go/src/github.company.com/project-repo/project/package1 (from $GOPATH)
记住这些道路是正确的。为什么不能安装自身内部的软件包??Main.go导入程序包1,但由于某些原因,“go install”不会在其内部安装程序包。在设置其值之前,您是否已(
mkdir
)设置了WORKDIR
哇,戈兰真的很挑剔路径!只是我把我的工作目录分配到了错误的地方。树中还有另一个文件:
WORKDIR /go/src/github.company.com/COMPANY/project-repo/project
当您运行
docker build
时,您是否在project
目录中,并且Dockerfile
也在那里?在COPY
之后添加RUN ls
到Dockerfile
是否提供了一些有用的建议?是的,我在项目main中,除了main.go之外,它还生成Dockerfile和Makefile以及package1/、package2/,这反映在lsin.go中,main.go中的import是否指定如下路径:import github.company.com/project repo/project/package1?是的,是的!这对你有帮助吗?我试过/go/src/github.company.com/project-repo/project/package1。也许我需要删除/go/src?
WORKDIR /go/src/github.company.com/COMPANY/project-repo/project