Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
去安装can';在Dockerfile中找不到我的内部包_Docker_Go_Dockerfile - Fatal编程技术网

去安装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