jjzjj

google-app-engine - 有没有人能够获得Go Hello World快速入门演示,使其适用于Google App Engine托管的VM?

coder 2024-07-08 原文

我正在尝试遵循here文档

gcloud config set project <project>
gcloud components update app
gcloud components update gae-go
goapp get google.golang.org/appengine
# remove existing containers & images just to be sure
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
gcloud preview app setup-managed-vms
cd $GOPATH/src/google.golang.org/appengine/demos/helloworld
gcloud --verbosity debug preview app run --enable-mvm-logs .

一切顺利,直到最后一行,这导致“启动实例时发生内部错误”:
DEBUG: Running gcloud.preview.app.run with _Args({'admin_host': None, 'allow_skipped_files': False, 'api_host': None, 'appidentity_email_address': None, 'appidentity_private_key_path': None, 'auth_domain': 'gmail.com', 'blobstore_path': None, 'clear_datastore': False, 'dart_dev_mode': None, 'dart_pub_serve_host': None, 'dart_sdk': None, 'datastore_consistency_policy': 'time', 'datastore_path': None, 'default_gcs_bucket_name': None, 'docker_host': None, 'enable_cloud_datastore': False, 'enable_mvm_logs': True, 'enable_sendmail': False, 'format': None, 'h': None, 'help': None, 'host': None, 'jvm_flag': None, 'log_level': None, 'logs_path': None, 'markdown': None, 'max_module_instances': None, 'modules': ['.'], 'php_executable_path': None, 'project': None, 'python_startup_script': None, 'quiet': None, 'require_indexes': False, 'shell': None, 'show_mail_body': False, 'smtp_allow_tls': False, 'smtp_host': None, 'smtp_password': None, 'smtp_user': None, 'storage_path': None, 'use_mtime_file_watcher': False, 'user_output_enabled': None, 'verbosity': 'debug'}). WARNING: The [application] field is specified in file [/home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld/app.yaml]. This field is not used by gcloud and should be removed. DEBUG: Found Cloud SDK root: /home/dallan/tools/google-cloud-sdk DEBUG: Found App Engine SDK root: /home/dallan/tools/google-cloud-sdk/platform/google_appengine DEBUG: Command sys.path: ['/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/antlr3', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/fancy_urllib', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/ipaddr', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/yaml-3.10', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/rsa', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/pyasn1', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/pyasn1_modules', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/concurrent', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/cherrypy', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/distutils', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/requests', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/six', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/websocket', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/docker', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/jinja2-2.6', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/webob-1.2.3', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.1', '/home/dallan/tools/google-cloud-sdk/./lib', '/home/dallan/tools/google-cloud-sdk/lib/googlecloudsdk/gcloud', '/home/dallan/tools/google-cloud-sdk/lib', '/usr/lib/python2.7/', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload'] Module [default] found in file [/home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld/app.yaml] DEBUG: Detected docker environment variables: DOCKER_HOST=tcp:// localhost:2376, DOCKER_CERT_PATH=/home/dallan/.docker, DOCKER_TLS_VERIFY=1 DEBUG: Sent event: Event(category='Executions', action='gcloud', label=u'2014.12.19', value=0) INFO: Looking for the Dockerfile in /home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld INFO: Using Dockerfile found in /home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld DEBUG: Found Cloud SDK root: /home/dallan/tools/google-cloud-sdk DEBUG: Found images: [u'gcloud-credentials-image:latest', u'google/appengine-log-server:latest', u'google/appengine-log-processor:latest', u'google/appengine-go:latest', u'google/appengine-java:latest', u'google/appengine-python27:latest', u'busybox:latest', u'google/docker-registry:latest'] DEBUG: Found image: google/appengine-go DEBUG: Running [dev_appserver.py] with: --allow_skipped_files=False --application=metal-shift-360 --auth_domain=gmail.com --clear_datastore=False --datastore_consistency_policy=time --dev_appserver_log_level=debug --enable_cloud_datastore=False --enable_mvm_logs=True --enable_sendmail=False --log_level=debug --require_indexes=False --show_mail_body=False --skip_sdk_update_check=True --smtp_allow_tls=False --use_mtime_file_watcher=False /home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld/app.yaml INFO: Skipping SDK update check. INFO: Starting API server at: http:// localhost:49580 DEBUG: Detected docker environment variables: DOCKER_HOST=tcp:// localhost:2376, DOCKER_CERT_PATH=/home/dallan/.docker, DOCKER_TLS_VERIFY=1 DEBUG: Sent event: Event(category='Commands', action='gcloud.preview.app.run', label='unknown', value=0) DEBUG: _add_watch_for_path('/home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld') INFO: Looking for image_id for image with tag google/appengine-log-server INFO: Creating container... INFO: Container f243742e897d9c38c7c075bf7a6eedd3c054d68c356018c0268ba421dcab477f created. INFO: Health checks starting for instance 0. DEBUG: Performing health check for instance 0. INFO: Starting Go VM Deployment process INFO: Starting module "default" running at: http:// localhost:8080 DEBUG: Dispatching request to after 0.0000s pending INFO: Starting admin server at: http:// localhost:8000 DEBUG: Starting process ['/home/dallan/tools/google-cloud-sdk/platform/google_appengine/goroot/bin/go-app-builder', '-app_base', '/home/dallan/test/testvm3/src/google.golang.org/appengine/demos/helloworld', '-arch', '6', '-dynamic', '-goroot', '/home/dallan/tools/google-cloud-sdk/platform/google_appengine/goroot', '-nobuild_files', '^^$', '-unsafe', '-gopath', '/home/dallan/test/testvm3', '-print_extras', '-vm', 'helloworld.go'] with input='', env={'GOARCH': 'amd64', 'GOOS': 'linux'}, cwd=None INFO: Go VM Deployment process failed: [Errno 104] Connection reset by peer ERROR: Internal error while starting instance. Traceback (most recent call last): File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1823, in _start_instance if not inst.start(): File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/instance.py", line 274, in start self._runtime_proxy.start() File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_proxy_go.py", line 130, in start self._vm_runtime_proxy.start(dockerfile_dir=dst_deployment_dir) File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_proxy.py", line 196, in start self._module_configuration.major_version, runtime_config.instance_id) File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/log_manager.py", line 172, in add _create_table(l) File "/home/dallan/tools/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/log_manager.py", line 138, in _create_table response = conn.getresponse() File "/usr/lib/python2.7/httplib.py", line 1045, in getresponse response.begin() File "/usr/lib/python2.7/httplib.py", line 409, in begin version, status, reason = self._read_status() File "/usr/lib/python2.7/httplib.py", line 365, in _read_status line = self.fp.readline(_MAXLINE + 1) File "/usr/lib/python2.7/socket.py", line 476, in readline data = self._sock.recv(self._rbufsize) error: [Errno 104] Connection reset by peer
任何想法出什么事了吗? docker version产量
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa

go version产生
go version go1.4 linux/amd64

一个可能的问题-gcloud preview app run生成的Dockerfile包含:
FROM google/appengine-go
..snip..
ADD . /app
RUN /bin/bash /app/_ah/build.sh

但是当我直接使用shell进入google / appengine-go容器时
docker run --rm -it --entrypoint /bin/bash google/appengine-go

我发现/ app目录完全是空的,并且helloworld应用程序内没有_ah目录,因此我不确定/app/_ah/build.sh应该来自哪里。文件系统中的任何地方都没有build.sh文件。

任何帮助是极大的赞赏。我花了整整一整天的时间,感到很沮丧。

最佳答案

我进行了两项更改,Hello World演示应用程序终于可以工作了:

  • 从app.yaml中删除application: helloworld
  • 修改生成的Dockerfile,以便在apt-get update &&之前插入apt-get install
  • 关于google-app-engine - 有没有人能够获得Go Hello World快速入门演示,使其适用于Google App Engine托管的VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643234/

    有关google-app-engine - 有没有人能够获得Go Hello World快速入门演示,使其适用于Google App Engine托管的VM?的更多相关文章

    1. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

      我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

    2. ruby - inverse_of 是否适用于 has_many? - 2

      当我使用has_one时,它​​工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290

    3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

      目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

    4. 微信小程序开发入门与实战(Behaviors使用) - 2

      @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

    5. 【Java入门】使用Java实现文件夹的遍历 - 2

      遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

    6. ES基础入门 - 2

      ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

    7. ruby - Google-api-ruby-client 翻译 API 示例 - 2

      很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

    8. ruby - 我可以从 Ruby 中的系统调用中获得连续输出吗? - 2

      当您在Ruby脚本中使用系统调用时,您可以像这样获得该命令的输出:output=`ls`putsoutput这就是thisquestion是关于。但是有没有办法显示系统调用的连续输出?例如,如果您运行此安全复制命令,以通过SSH从服务器获取文件:scpuser@someserver:remoteFile/some/local/folder/...它显示随着下载进度的连续输出。但是这个:output=`scpuser@someserver:remoteFile/some/local/folder/`putsoutput...不捕获该输出。如何从我的Ruby脚本中显示正在进行的下载进度?

    9. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

      文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

    10. Tcl脚本入门笔记详解(一) - 2

      TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

    随机推荐