From 9b97c28b0c5a4d1637728188be2a447b02025c10 Mon Sep 17 00:00:00 2001 From: Bill Prin Date: Fri, 29 Jan 2016 16:27:54 -0800 Subject: [PATCH] Basic Kinto Example --- managed_vms/kinto/Dockerfile | 8 ++++---- managed_vms/kinto/README.md | 18 ++++++++++++++++++ managed_vms/kinto/app.yaml | 6 ++++-- managed_vms/kinto/requirements.txt | 2 +- 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 managed_vms/kinto/README.md diff --git a/managed_vms/kinto/Dockerfile b/managed_vms/kinto/Dockerfile index e439a97194c4..ddb731ad2a37 100644 --- a/managed_vms/kinto/Dockerfile +++ b/managed_vms/kinto/Dockerfile @@ -27,16 +27,16 @@ RUN virtualenv /env # the context of the virtualenv and will have access to its dependencies. ENV VIRTUAL_ENV /env ENV PATH /env/bin:$PATH + +# Kinto config file ENV KINTO_INI /etc/kinto/kinto.ini # Install dependencies. ADD requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt +#Create Kinto config file and replace 8888 with 8080 RUN kinto --ini $KINTO_INI --backend=memory init && sed -i 's/8888/8080/g' $KINTO_INI -# Add application code. -ADD . /app - -# Use Gunicorn to serve the application. +# Run the Kinto kickoff command CMD kinto --ini $KINTO_INI migrate && kinto --ini $KINTO_INI start diff --git a/managed_vms/kinto/README.md b/managed_vms/kinto/README.md new file mode 100644 index 000000000000..5483adbe349e --- /dev/null +++ b/managed_vms/kinto/README.md @@ -0,0 +1,18 @@ +# Kinto Example + +This is a basic example of running Mozillas [Kinto](https://github.com/Kinto/kinto/blob/master/docs/index.rst) +on Managed VMs. Kinto provides a framework to sync JSON data across many devices and provide push notifications. +Thius example uses a custom runtime to install Kinto and edit the config to run it on port 8080, which is the port that +the base Docker image is expecting. + +Since Kinto is being imported as a Python library and run as-is, no additional code is necessary. + +Note that this is using Kinto's basic in-memory backend. As such, the instances are tied to 1. A production +version of Kinto would use a PostgreSQL database and Redis cluster, which would allow scaling to many instances. + +If you are interested in seeing this example expanded to use PostgreSQL, you can file an Issue on the Issue +Tracker, or submit a Pull Request if you've accomplished it yourself. + + + + diff --git a/managed_vms/kinto/app.yaml b/managed_vms/kinto/app.yaml index 41e51d59e03f..6819c1facc92 100644 --- a/managed_vms/kinto/app.yaml +++ b/managed_vms/kinto/app.yaml @@ -17,14 +17,16 @@ runtime: custom vm: true -health_check: - enable_health_check: False + +# Kinto does not respond 404 to /_ah/health (sends a redirect) vm_health_check: enable_health_check: False +# Using an in-memory backend so lock instances to 1 manual_scaling: instances: 1 + # Temporary setting to keep gcloud from uploading the virtualenv skip_files: - ^v?env$ diff --git a/managed_vms/kinto/requirements.txt b/managed_vms/kinto/requirements.txt index af58463399c5..611c5c13e33a 100644 --- a/managed_vms/kinto/requirements.txt +++ b/managed_vms/kinto/requirements.txt @@ -1,3 +1,3 @@ gunicorn==19.4.5 oauth2client==1.5.2 -kinto +kinto==1.11.2