Skip to main content

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.

Metadata

Release files for django-docker-engine 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-docker-engine 0.1.4
File Size Uploaded
django_docker_engine-0.1.4.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-docker-engine 0.1.4
File Interpreter ABI Platform
django_docker_engine-0.1.4-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 27.5 kB

Release files / django_docker_engine-0.1.4.tar.gz

Download URL django_docker_engine-0.1.4.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
54297240eb2e22df58b47f5672b6cb11fd7f0521db59bf91403cd8c0976dc17a
BLAKE2b-256 checksum
How to use checksums
a654f53de02c8df2061fa99c07319edf9a3763a5d81688d22330a3190f67a6ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.7.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.6.3

Release files / django_docker_engine-0.1.4-py2.py3-none-any.whl

Download URL django_docker_engine-0.1.4-py2.py3-none-any.whl
Size 15.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
345a9160d4064b45041628d64f1a0ac203faba4c4396863e60321139937643e2
BLAKE2b-256 checksum
How to use checksums
4be5f6c684627f0ed82f804bc41b013b0ecb6eeb8dba0bc70d6c1ccb92e72e66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.7.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.6.3

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.59

2 release files

0.0.58

2 release files

0.0.57

2 release files

0.0.56

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.52

2 release files

0.0.51

2 release files

0.0.47

1 release file

0.0.46

1 release file

0.0.45

1 release file

0.0.44

1 release file

0.0.43

1 release file

0.0.42

1 release file

0.0.41

1 release file

0.0.40

1 release file

0.0.39

1 release file

0.0.38

1 release file

0.0.37

1 release file

0.0.36

1 release file

0.0.35

1 release file

0.0.34

1 release file

0.0.33

1 release file

0.0.31

1 release file

0.0.30

1 release file

0.0.29

1 release file

0.0.28

1 release file

0.0.27

1 release file

0.0.26

1 release file

0.0.25

1 release file

0.0.24

1 release file

0.0.23

1 release file

0.0.22

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page