【问题标题】:Golang: Preview of managed VM app returns errorGolang:托管 VM 应用程序的预览返回错误
【发布时间】:2015-06-17 00:54:12
【问题描述】:

我正在尝试使用 gcloud preview app run 命令预览 Go docker (App Engine ManagedVM) 应用。

但我不断收到此错误:

Traceback (most recent call last):
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 83, in <module>
    _run_file(__file__, globals())
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 79, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 985, in <module>
    main()
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 978, in main
    dev_server.start(options)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 774, in start
    self._dispatcher.start(options.api_host, apis.port, request_data)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 182, in start
    _module, port = self._create_module(module_configuration, port)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 262, in _create_module
    threadsafe_override=threadsafe_override)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1463, in __init__
    super(ManualScalingModule, self).__init__(**kwargs)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 514, in __init__
    self._module_configuration)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 237, in _create_instance_factory
    module_configuration=module_configuration)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_factory.py", line 78, in __init__
    timeout=self.DOCKER_D_REQUEST_TIMEOUT_SECS)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/docker/containers.py", line 740, in NewDockerClient
    client.ping()
  File "/Users/jwesonga/google-cloud-sdk/./lib/docker/docker/client.py", line 711, in ping
    return self._result(self._get(self._url('/_ping')))
  File "/Users/jwesonga/google-cloud-sdk/./lib/docker/docker/client.py", line 76, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/lib/requests/requests/sessions.py", line 468, in get
    return self.request('GET', url, **kwargs)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/lib/requests/requests/sessions.py", line 456, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/lib/requests/requests/sessions.py", line 559, in send
    r = adapter.send(request, **kwargs)
  File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/lib/requests/requests/adapters.py", line 384, in send
    raise Timeout(e, request=request)
requests.exceptions.Timeout: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x10631c7d0>, 'Connection to 192.168.59.104 timed out. (connect timeout=60)')
ERROR: (gcloud.preview.app.run) DevAppSever failed with error code [1]

我已经使用 boot2docker status 确认 docker 已启动并运行,它返回 running 这在机器重新启动之前可以工作,但在机器重新启动之后,似乎没有任何工作。有什么想法吗?

【问题讨论】:

    标签: go docker


    【解决方案1】:

    主要问题是:

    File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine
           /lib/requests/requests/adapters.py", line 384, in send
        raise Timeout(e, request=request)
    requests.exceptions.Timeout:   
    (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object 
    at 0x10631c7d0>, 'Connection to 192.168.59.104 timed out. 
    (connect timeout=60)')
    ERROR: (gcloud.preview.app.run) DevAppSever failed with error code [1]
    

    当您有代理时通常会出现这种情况,在pip issue 1805 中进行了讨论

    应该在pip1.6中修复了,但以防万一,你可以试试workaround of alexandrem

    /opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests
    /adapters.patch.py /opt/venvs/ironic/lib/python2.6/site-packages
    /pip/_vendor/requests/adapters.py
    209c209
    if True or not proxy in self.proxy_manager:
       ^^^^
    

    基本上我只是在 adapter.py 的第 209 行的条件中添加一个 True 以始终创建一个 ProxyManager 实例,从而跳过池管理器逻辑。

    【讨论】:

    • @jwesonga 你能检查一下你的 docker 容器中使用的 pip 版本吗?
    • 如何在 docker 容器中检查?顺便说一句,我在 OSX 上
    • @jwesonga stackoverflow.com/a/27708039/6309: docker exec &lt;container_id&gt; pip -V
    • @VoncC 因为容器实际上并没有运行(与上面的错误有关)我无法获得容器 ID,或者可能是我做错了。我试过:“docker ps”并得到:FATA[0032] 尝试连接时出错:Get 192.168.59.104:2376/v1.17/containers/json: dial tcp 192.168.59.104:2376: i/o timeout
    • @jwesonga 你在代理后面吗?
    【解决方案2】:

    gcloud 命令启用 ah_host 进程并创建应用程序的 docker 映像并将其传递给 Docker 守护程序,在您的情况下,您的 docker 守护程序似乎没有响应请求。所以为了确保,执行“sudo docker -d”来检查 Docker 守护进程是否在你的机器上运行。 还要检查您设置正确的证书路径和 TLS_VERIFY 的值是否为 TRUE。

    通过文档 [1] 在 MacOS 上安装 Docker

    [1]https://docs.docker.com/installation/mac/

    【讨论】:

    • 我运行“sudo docker -d”并得到“这是一个仅限客户端的二进制文件 - 不支持运行 Docker 守护进程”
    • 找出“问题”是什么,出于某种奇怪的原因,我必须在运行“gcloud preview app run ”之前在终端中运行“eval”$(boot2docker shellinit)“如果我打开一个新终端,我必须再次重复该过程。我不认为是这种情况,因为我将环境变量添加到我的 ~/.bash_profile 中,这是预期的行为吗?
    • @jwesonga: 你也可以试试 echo export DOCKER_HOST=tcp://ip:port >> ~/.bashrc && source ~/.bashrc,然后运行 ​​source .bash_profile 看看是否有效.
    猜你喜欢
    • 2016-02-03
    • 2021-01-12
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2022-09-29
    • 1970-01-01
    相关资源
    最近更新 更多