Unable to run ManagedVM Python tutorial on GCloud 0.9.68/Docker 1.7.1/app-engine-python 1.9.23

249 views
Skip to first unread message

ingo

unread,
Jul 15, 2015, 1:06:37 PM7/15/15
to google-a...@googlegroups.com
Hi,

I have been following the tutorial on Managed VMs in the docs. I installed boot2docker 1.7.1 on MacOSX 10.10.1. I confirmed that the installation was successful by running boot2docker run hello-world as described on https://docs.docker.com/installation/mac/

However, running gcloud preview app run ./app.yaml and gcloud preview app deploy ./app.yaml fails with an exception:

$ gcloud preview app run ./app.yaml

Module [default] found in file [/Users/ingo/git/managedvmtest/app.yaml]

INFO: Looking for the Dockerfile in /Users/ingo/git/managedvmtest

INFO: Looking for the default Dockerfile for runtime [python27]

INFO: Dockerfile for runtime [python27] is found in /Users/ingo/google-cloud-sdk/lib/googlecloudsdk/appengine/dockerfiles. Copying it into application directory.

INFO     2015-07-15 17:01:45,643 application_configuration.py:399] No version specified. Generated version id: 20150715t170145

INFO     2015-07-15 17:01:45,643 devappserver2.py:762] Skipping SDK update check.

INFO     2015-07-15 17:01:45,800 api_server.py:204] Starting API server at: http://localhost:49447

/Users/ingo/google-cloud-sdk/platform/google_appengine/lib/requests/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

 InsecurePlatformWarning

INFO     2015-07-15 17:01:45,923 api_server.py:629] Applying all pending transactions and saving the datastore

INFO     2015-07-15 17:01:45,923 api_server.py:632] Saving search indexes

Traceback (most recent call last):

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 83, in <module>

   _run_file(__file__, globals())

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 79, in _run_file

   execfile(_PATHS.script_file(script_name), globals_)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1027, in <module>

   main()

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1020, in main

   dev_server.start(options)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 817, in start

   self._dispatcher.start(options.api_host, apis.port, request_data)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 193, in start

   _module, port = self._create_module(module_configuration, port)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 278, in _create_module

   threadsafe_override=threadsafe_override)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1539, in __init__

   super(ManualScalingModule, self).__init__(**kwargs)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 558, in __init__

   self._module_configuration)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 259, in _create_instance_factory

   module_configuration=module_configuration)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_factory.py", line 76, in __init__

   timeout=self.DOCKER_D_REQUEST_TIMEOUT_SECS)

 File "/Users/ingo/google-cloud-sdk/platform/google_appengine/google/appengine/tools/docker/containers.py", line 742, in NewDockerClient

   client.ping()

 File "/Users/ingo/google-cloud-sdk/./lib/docker/docker/client.py", line 847, in ping

   return self._result(self._get(self._url('/_ping')))

 File "/Users/ingo/google-cloud-sdk/./lib/docker/docker/client.py", line 126, in _result

   self._raise_for_status(response)

 File "/Users/ingo/google-cloud-sdk/./lib/docker/docker/client.py", line 122, in _raise_for_status

   raise errors.APIError(e, response, explanation=explanation)

docker.docker.errors.APIError: 400 Client Error: Bad Request ("client is too old, minimum supported API version is 1.12, please upgrade your client to a newer version")

ERROR: (gcloud.preview.app.run) DevAppSever failed with error code [1]


I have set the DOCKER environment variables in my .bash_profile

export DOCKER_HOST=tcp://192.168.59.103:2376

export DOCKER_CERT_PATH=/Users/ingo/.boot2docker/certs/boot2docker-vm

export DOCKER_TLS_VERIFY=1


.. and docker is running

$ boot2docker status

running


Is there an incompatibility between Docker 1.7.1 and the latest version of GCloud? Or am I missing some important piece of configuration to get this going?

Thanks,
Ingo

$ gcloud version

Google Cloud SDK 0.9.68

app 2015.07.02

app-engine-python 1.9.23

bq 2.0.18

bq-nix 2.0.18

core 2015.07.02

core-nix 2015.06.02

gcloud 2015.07.02

gcutil-msg 2015.07.02

gsutil 4.13

gsutil-nix 4.12

preview 2015.07.02


app.yaml:


module: default

runtime: python27

api_version: 1

threadsafe: yes

vm: true


resources:

  cpu: .5

  memory_gb: 1.3


manual_scaling:

  instances: 1


handlers:

- url: .*

  script: main.app


main.py:


import webapp2

class HelloHandler(webapp2.RequestHandler):

  def get(self):

   msg = 'hello ingo2 3 4 %s!\n' % self.request.headers.get('X-AppEngine-Country', 'world')

   self.response.headers['Content-Type'] = 'text/plain'

   self.response.out.write(msg)


app = webapp2.WSGIApplication([('/', HelloHandler)],

                              debug=True)



pdknsk

unread,
Jul 15, 2015, 1:15:23 PM7/15/15
to google-a...@googlegroups.com
Downgrade to the previous Docker version. I already filed a bug about it some minute ago.

ingo

unread,
Jul 16, 2015, 10:46:34 AM7/16/15
to google-a...@googlegroups.com
Google just updated the documentation on this. You can use the Cloud SDK with 1.7.0 of boot2docker. However, you have to use the following command to download the 1.7.0 ISO (instead of just grabbing the latest version).

Ingo

Camilo Silva

unread,
Jul 21, 2015, 6:32:00 PM7/21/15
to Google App Engine
The fix suggested to have a downgrade to 1.7.0 instead worked for my nodejs custom app engine VM (just wanted to confirm that it worked).
Though after download, executing "boot2docker version" kept saying "1.7.1" where the ISO was indeed 1.7.0 -- just saying in case that can throw ppl off.

-CAS


Reply all
Reply to author
Forward
0 new messages