简体   繁体   English

是否有人能够获得Go Hello World快速入门演示,以适用于Google App Engine托管的VM?

[英]Has anyone been able to get the Go Hello World Quickstart demo to work for Google App Engine Managed VMs?

I'm trying to follow the documentation 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 .

Everything goes well up until the last line, which results in an "Internal error while starting instance": 一切顺利,直到最后一行,这导致“启动实例时发生内部错误”:

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

Any ideas what's going wrong? 任何想法出什么事了吗? docker version yields 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

and go version yields go version产量

go version go1.4 linux/amd64

A possible problem -- the Dockerfile generated by gcloud preview app run contains: 一个可能的问题-由gcloud preview app run生成的gcloud preview app run包含:

FROM google/appengine-go
..snip..
ADD . /app
RUN /bin/bash /app/_ah/build.sh

But when I shell into the google/appengine-go container directly using 但是当我直接使用shell进入google / appengine-go容器时

docker run --rm -it --entrypoint /bin/bash google/appengine-go

I find that the /app directory is completely empty, and there isn't an _ah directory inside the helloworld application, so I'm not sure where /app/_ah/build.sh is supposed to be coming from. 我发现/ app目录完全是空的,并且helloworld应用程序中没有_ah目录,因此我不确定/app/_ah/build.sh应该来自哪里。 There isn't a build.sh file anywhere in the file system. 文件系统中的任何地方都没有build.sh文件。

Any help is greatly appreciated. 任何帮助是极大的赞赏。 I've spent all day on this and I'm stumped. 我花了整整一整天的时间,感到很沮丧。

I made two changes and the Hello World demo app is finally working: 我进行了两项更改,Hello World演示应用程序终于可以工作了:

  1. remove application: helloworld from app.yaml 删除application: helloworld app.yaml中的application: helloworld
  2. modify the generated Dockerfile to insert apt-get update && before apt-get install 修改生成的Dockerfile以在apt-get install之前插入apt-get update &&

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM