由于超时而无法部署AppEngine版本

时间:2016-03-17 08:09:20

标签: google-app-engine google-cloud-storage google-compute-engine app-engine-flexible

我正在尝试部署到Google AppEngine。 (更确切地说:托管VM。)

早些时候,我尝试在Windows中执行此操作,Docker内置于云端,但失败了(请参阅StackOverflow question);所以现在我尝试从Linux开始,在本地构建Docker。

这也失败了,但原因不同。它从各种Linux开发机器一直失败。当我们从Google Cloud中的Linux VM运行相同的命令时,它会成功。

我可以做些什么来部署它?

gcloud preview app deploy  /shared/yaml-war/app.yaml --version=joshua20160317a --project=mytest-test1

Linux控制台输出

gcloud preview app deploy  /shared/yaml-war/app.yaml --version=joshua20160316a --project=mytest-test1WARNING: The `gcloud preview app` surface is rapidly improving. Look out for
changing flags and new commands before the transition out of the `preview`
component. These changes will be documented in the Cloud SDK release notes
<https://dl.google.com/dl/cloudsdk/release/RELEASE_NOTES> and via deprecation notices for changing commands.

If you would like to avoid changing behavior, please pin to a fixed version of
the Google Cloud SDK as described under the "Alternative Methods" section of the
Cloud SDK web site: <https://cloud.google.com/sdk/#alternative>.

You are about to deploy the following modules:
 - mytest-test1/default (from [/shared/yaml-war/app.yaml])
     Deployed URL: [https://joshua20160316a-dot-mytest-test1.appspot.com]
     (add --promote if you also want to make this module available from
     [https://mytest-test1.appspot.com])

Do you want to continue (Y/n)?  Y

Beginning deployment...
Verifying that Managed VMs are enabled and ready.
If this is your first deployment, this may take a while...done.

Provisioning remote build service.
Copying certificates for secure access. You may be prompted to create an SSH keypair.
Warning: Permanently added '104.197.56.233' (ECDSA) to the list of known hosts.
Building and pushing image for module [default]
----------------------------- DOCKER BUILD OUTPUT ------------------------------
^[Beginning teardown of remote build environment (this may take a few seconds).
ERROR: gcloud crashed (SSLError): The write operation timed out

If you would like to report this issue, please run the following command:
  gcloud feedback
Deleted [https://www.googleapis.com/compute/v1/projects/mytest-test1/zones/us-central1-f/instances/gae-builder-vm-joshua20160316a].

本地日志文件的相关部分(除了终端之外没有多少说明。)

2016-03-16 17:01:05,369 INFO     root            Building docker image mytest-test1.default.joshua20160316a from /shared/yaml-war/Dockerfile:
2016-03-16 17:01:05,369 INFO     ___FILE_ONLY___ ----------------------------- DOCKER BUILD OUTPUT ------------------------------

2016-03-16 17:02:24,730 DEBUG    docker.docker.api.build Looking for auth config
2016-03-16 17:02:24,730 DEBUG    docker.docker.api.build Sending auth config (u'https://bucket.gcr.io', u'https://appengine.gcr.io', u'https://eu.gcr.io', u'https://gcr.io', u'https://us.gcr.io', u'https://asia.gcr.io', u'https://b.gcr.io')
2016-03-16 17:25:07,109 INFO     root            Tearing down remote build vm.
2016-03-16 17:25:07,110 INFO     ___FILE_ONLY___ Beginning teardown of remote build environment (this may take a few seconds).

2016-03-16 17:25:07,110 DEBUG    root            The write operation timed out
Traceback (most recent call last):
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 609, in Execute
    result = args.cmd_func(cli=self, args=args)
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 1228, in Run
    resources = command_instance.Run(args)
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/surface/preview/app/deploy.py", line 256, in Run
    remote_build)
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/deploy_command_util.py", line 177, in BuildAndPushDockerImages
    info.file, docker_client, image_name)
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/deploy_command_util.py", line 248, in BuildAndPushDockerImage
    image.Build(docker_client)
  File "/home/joshua/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/docker_image.py", line 98, in Build
    nocache=self._nocache, rm=self._rm, pull=False)
  File "/home/joshua/google-cloud-sdk/./lib/third_party/docker/docker/api/build.py", line 97, in build
    timeout=timeout,
  File "/home/joshua/google-cloud-sdk/./lib/third_party/docker/docker/client.py", line 107, in _post
    return self.post(url, **self._set_request_timeout(kwargs))
  File "/home/joshua/google-cloud-sdk/./lib/third_party/requests/sessions.py", line 507, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/home/joshua/google-cloud-sdk/./lib/third_party/requests/sessions.py", line 464, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/joshua/google-cloud-sdk/./lib/third_party/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/home/joshua/google-cloud-sdk/./lib/third_party/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
SSLError: The write operation timed out
2016-03-16 17:25:07,114 ERROR    root            gcloud crashed (SSLError): The write operation timed out
2016-03-16 17:25:07,131 INFO     ___FILE_ONLY___ 

2 个答案:

答案 0 :(得分:3)

我无法回答 -

我在使用gcloud进行部署时遇到了类似的超时/错误,并且通过升级gcloud工具本身或者有时升级SDK总是为我修复。您是否正在运行最新版本的gcloud?

答案 1 :(得分:2)

您的构建失败了这一行:

ERROR: gcloud crashed (SSLError): The write operation timed out

这可能是从gcloud到你的(本地)docker守护进程的HTTP请求。 docker客户端(即gcloud)正在将docker构建上下文(调用docker build的目录的tarball)发送到docker守护程序。看到写入超时是很奇怪的。您的项目是否过大(例如GiB +)?您是否尝试在同一目录中运行vanilla docker build

您可以尝试--verbosity debug获取其他调试信息。实际上,我认为这只会打印出您在日志文件中找到的内容(感谢您粘贴日志文件)。