Skip to main content

Django app that manages the creation of, and proxies requests to, Docker containers

Project description

django_docker_engine

Build Status PyPI version Python versions Django versions

This Django app manages and proxies requests to Docker containers. The primary goal has been to provide a visualization framework for the Refinery Project, but nothing should prevent its use in other contexts, as well.

In order for a Docker container to work with this package it must at a minimum:

  • listen on some port for HTTP connections, and
  • accept a single JSON file as input.

Quick Demo

Install Docker if you haven't already, then download the project, install dependencies, and run the demo server:

$ git clone https://github.com/refinery-platform/django_docker_engine.git
$ cd django_docker_engine
$ pip install -r requirements-dev.txt
$ pip install -r requirements.txt
$ ./manage.py runserver

Visit the demo server: From there you can pick a visualization tool and a data file to launch a container, see the requests made against each container, and kill the containers you've launched.

Motivation

Visualization tools have been built with a range of languages and they may have numerous, and possibly conflicting, dependencies. For the Refinery Platform, a data management, analysis, and visualization system for bioinformatics and computational biology applications, we have tried to accommodate the widest range of tools by creating django_docker_engine, a Python package, available on PyPI, which launches Docker containers, proxies requests from Django to the containers, and records each request.

For each tool the wrapping Docker container will parse the input data provided on launch and start listening for requests. Currently, wrappers are in use for pure JavaScript applications, and for client-server applications, such as HiGlass for exploring genomic contact matrices, and a Plotly Dash tool for gene expression data. The containers themselves may run on the same host as Django, or on separate instances.

In the Refinery Platform, interactive visualizations managed by django_docker_engine complement workflows managed by Galaxy: Both tools lower barriers to entry and make it possible for end users to run sophisticated analyses on their own data. Refinery adds user management, access control, and provenance tracking facilities to make research more reproducible.

django_docker_engine will be useful in any environment which needs to provide access to pre-existing or independently developed tools from within a Django application with responsibility for user authentication, access control, and data management.

More information

For the demo server, tools.py defines the tools which are available and specifies default inputs. Analogously, the visualization-tools repo defines the tools which can be loaded into Refinery.

More information:

Release process

In your branch update VERSION.txt, using semantic versioning: When the PR is merged, the successful Travis build will push a new version to pypi.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_docker_engine-0.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

django_docker_engine-0.1.0-py2.py3-none-any.whl (16.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django_docker_engine-0.1.0.tar.gz.

File metadata

  • Download URL: django_docker_engine-0.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.3

File hashes

Hashes for django_docker_engine-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fce078df7a2ca2f1153e9366670cbbc3c29e5369d424a162ae39d51e747c04b7
MD5 32c0e6213399f667e3b9256ae307cb87
BLAKE2b-256 805ed927edb2d0c5c110e833fc0a5a1f38ac4c1a9e8985da8677a3e24ee964ec

See more details on using hashes here.

File details

Details for the file django_docker_engine-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: django_docker_engine-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.3

File hashes

Hashes for django_docker_engine-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b9c85817d48b2b50d9997151e6e2009d30f7e5fe47ef0b093677bf30d9ed8b3e
MD5 9b5f4834cd35ecd5ca524bda4ce78dd5
BLAKE2b-256 bc35123e67d33b0e7931a36fca6eb7b3e1814cd74af0a035c9fba9a148d4c6a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page