我目前正在Go中编写应用程序并尝试部署多个服务。我正在运行以下命令:gcloud app deploy dispatch.yaml app/app.yaml mod1/mod1.yaml
。
app.yaml文件对应默认服务并成功部署,但服务mod1返回此错误:
ERROR: (gcloud.app.deploy) Error Response: [9] Deployment contains files that cannot be compiled: Compile failed: 2016/07/22 18:17:14 go-app-builder: build timing: 1×compile (53ms total), 0×link (0 total) 2016/07/22 18:17:14 go-app-builder: failed running compile: exit status 1
mod1.go:4: can't find import: "myapp/mod1/web_console"
My-Macbook: myapp$ gcloud app deploy dispatch.yaml app/app.yaml mod1/mod1.yaml
我的文件结构如下:
mod1.go:
package mod1
import (
"myapp/mod1/web_console"
)
func init() {
// Initializing Web Console establishes connection
// to the database and also creates routes
var wc *web_console.WebConsole
wc = web_console.NewWebConsole(true)
wc.Configure()
}
mod1.yaml:
module: mod1
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
app.yaml:
module: default
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
感谢您抽出宝贵时间提供帮助!
答案 0 :(得分:0)
每个GAE服务/模块都是独立的,无法访问服务/模块目录 之外的任何内容:
.yaml
文件存在的目录在您的特定情况下,您需要确保没有服务/模块引用父myapp
目录(这只是应用程序内容的组织占位符,与您相关但没有实际存在于GAE )。我相信您的mod1.go
导入应如下所示:
package mod1
import (
"web_console"
)
但是带着一点点盐,我实际上并不熟悉go。
答案 1 :(得分:0)
好像我使用了错误的工具进行部署。我使用print tensor[0].eval()
运行命令,并且能够成功部署服务而没有问题。