Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/8.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
Google app engine 使用“go get”失败;在github.com/…”中找不到可构建的Go源文件;_Google App Engine_Go_Docker_Gitlab Ci - Fatal编程技术网

Google app engine 使用“go get”失败;在github.com/…”中找不到可构建的Go源文件;

Google app engine 使用“go get”失败;在github.com/…”中找不到可构建的Go源文件;,google-app-engine,go,docker,gitlab-ci,Google App Engine,Go,Docker,Gitlab Ci,我正在尝试构建一个docker容器,在那里我可以构建我的GAE go应用程序。稍后我将在gitlab.com中使用此容器 我有一个安装了最新golang gae sdk的容器。 我在我的项目根目录(/project)中,当我尝试构建它时: goapp build ./... 它得到这样的回应: /project/src/github.com/gorilla/mux中没有可构建的Go源文件 当我尝试获取软件包时: goapp get ./... 我得到了和以前一样的回答。 构建它的唯一方法是删

我正在尝试构建一个docker容器,在那里我可以构建我的GAE go应用程序。稍后我将在gitlab.com中使用此容器

我有一个安装了最新golang gae sdk的容器。 我在我的项目根目录(/project)中,当我尝试构建它时:

goapp build ./...
它得到这样的回应:

/project/src/github.com/gorilla/mux中没有可构建的Go源文件

当我尝试获取软件包时:

goapp get ./...
我得到了和以前一样的回答。 构建它的唯一方法是删除github.com文件夹。但这不应该在存储库中,以便在我的git repo中具有正确版本的依赖项吗


有人能帮助我或解释一下这是如何工作的吗?

我遇到了一个类似的问题,尽管go安装正确并且所有源文件都存在,但我无法构建

在我的例子中,操作系统使用的go版本比源代码要求的版本旧。您可以通过以下方式检查版本:

go --version
在/project/src/github.com/gorilla/mux目录中,查看主源文件的第一行。它可以包含这样一行:

// +build go1.5
例如,这意味着您至少需要go 1.5才能构建。在我的例子中,ubuntu使用的是位于

whereis go

我删除了旧的二进制文件夹(可能是你不应该做的),重新安装了go from scratch,这给了我正确的版本,构建工作正常。

更多信息:我正在windows上开发,并尝试在docker容器中构建。我发现没有将github.com/gorilla/mux文件夹的文件推送到存储库中,因为该文件夹包含.git文件夹。为什么它包含这样一个文件夹?处理这种导入并使存储库能够开箱即用的最佳实践是什么?