我正在尝试部署到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___
答案 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
获取其他调试信息。实际上,我认为这只会打印出您在日志文件中找到的内容(感谢您粘贴日志文件)。