Failure deploying AppEngine version because of timeout

不羁的心 提交于 2019-12-12 05:13:23

问题


I am trying to deploy to Google AppEngine. (More precisely: Managed VM.)

Earlier, I tried doing this from Windows, with Docker built in the cloud, and failed (see StackOverflow question); so now I tried from Linux, with Docker built locally.

This also fails, but for a different reason. It fails consistently from various Linux dev machines. It succeeds when we run the same command from a Linux VM in the Google Cloud.

What can I do to deploy this?

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

Linux console output

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].

The relevant part of the local log file (which doesn't say much more than the terminal).

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___ 

回答1:


Answering as I can't comment-

I've had similar timeout / errors on deployment using gcloud, and it was always fixed for me by upgrading the gcloud tool itself, or at times the SDK. Are you running the most up to date version of gcloud?




回答2:


Your build is failing with this line:

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

That is probably the HTTP request from gcloud to your (local) docker daemon. The docker client (ie, gcloud) is sending the docker build context (a tarball of the directory where docker build is invoked) to the docker daemon. It's strange to see a write timeout for that. Is your project excessively large (eg GiB+)? Have you tried running a vanilla docker build on the same directory?

You might try --verbosity debug to get additional debug info. Actually, I think this would just print out what you have found in the logfile (thanks for pasting the logfile).



来源:https://stackoverflow.com/questions/36054793/failure-deploying-appengine-version-because-of-timeout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!