我试图重现您的问题。
FROM golang:latestRUN apt-get updateRUN apt-get upgrade -yENV GOBIN /go/binRUN go get github.com/go-sql-driver/mysql
您已提供此Dockerfile。我已经建好了
$ docker build -t test .
现在我执行此图像以运行您的
go build命令。
$ docker run -it test bash
然后,我
main.go在
/go/src目录中创建了您提供的内容。
最后,我已经成功构建,没有任何错误
$ go build -i -o /go/bin/explorer-cli src/main.go
而且我想我已经找到您的问题了。我没用过
docker-compose。但是你会明白的。
问题 在这里:
app: build: . tty: true image: explorer-cli:latest container_name: explorer-cli volumes: - ./src:/go/src <-- problem is here external_links: - database
您安装
./src到
/go/src目录中的码头工人。这个过程是
/go/src用您的本地覆盖docker中的目录
./src。这正在删除您从中获得的数据
goget github.com/go-sql-driver/mysql
你理解吗?
但是,当您运行时
go get github.com/go-sql-driver/mysql,它现在又可以获取数据。
解决方案(01):
将本地卷挂载到其他地方。
volumes: - ./src:/tmp/src
并修改您的Dockerfile将其
main.go移至
/go/src
解决方案(02):
复制
main.go到您的码头工人。在Dockerfile中添加这一行
COPY ./src/main.go /go/src
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)