得到“无法find包”试图build立我的应用程序在docker集装箱
这是我的Dockerfile。
FROM ubuntu MAINTAINER me <my@email.com> RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ make # Get and compile go RUN curl -s https://go.googlecode.com/files/go1.2.1.src.tar.gz | tar -v -C /usr/local -xz RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1 ENV PATH /usr/local/go/bin:/go/bin:$PATH ENV GOPATH /go RUN go get github.com/gorilla/feeds WORKDIR /go CMD go version && go install feed && feed
它build立得很好:
sudo docker build -t ubuntu-go .
但是当我运行它时,我得到一个包错误:
sudo docker run -v /home/rbucker/go:/go --name go ubuntu-go
该错误看起来像:
src / feed / feed.go:7:2:在以下任一位置找不到软件包“github.com/gorilla/feeds”:/usr/local/go/src/pkg/github.com/gorilla/feeds(from $ GOROOT )/go/src/github.com/gorilla/feeds(来自$ GOPATH)
这很奇怪,因为“去安装”不安装依赖关系,而前面的“去github.com/gorilla/feeds”完成没有错误。 所以大概我有一个path或环境问题,但所有的例子看起来就像这个。
PS:我的代码位于/ go / src / feed(feed.go)
package main import ( "net/http" "time" "github.com/gorilla/feeds" ) . . .
更新:当我手动执行“去获取”,然后启动“运行”似乎工作。 所以看起来,“运行得到”是存储我的文件在以太而不是我的主机的音量。
sudo docker run -v /home/rbucker/go:/go --name go ubuntu-go /bin/bash
然后
sudo docker run -v /home/rbucker/go:/go --name go ubuntu-go
(这些文件位于我的〜/ go / src / githum.com和〜/ go / pkg文件夹中。)
更新:我发现在BUILD步骤中,/ go卷尚未附加到泊坞窗图像。 所以它基本上被分配到零。 但是在运行过程中,“get install”应该已经找回了它的代价。
最后:这个工程,但显然不是首选的方法:
CMD go get github.com/gorilla/feeds && go version && go install feed && feed
注意我在CMD中执行了“go get”而不是RUN。
我通过使用解决了类似的东西
go get ./...
来源: https : //coderwall.com/p/arxtja/install-all-go-project-dependencies-in-one-command