CBIIT/nci-webtools-docker-feasibility

Name: nci-webtools-docker-feasibility

Owner: NCI CBIIT Development Sandbox

Description: null

Created: 2016-03-17 13:51:45.0

Updated: 2017-03-30 20:06:29.0

Pushed: 2017-12-04 21:28:11.0

Homepage: null

Size: 3336

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Docker Feasibility Study

This repository contains dockerfiles used to test different deployment strategies for applications currently being hosted at NCI. Because CentOS 6.7 is currently being used to host several applications we have attempted to create a minimal enviroment based on the centos:6.7 image during the first phase of this project. We are currently investigating using the centos:7 baseline image as the repositories offer more up-to-date support for application dependencies.

The following tools are supported by this study:

We are also investigating best practices for deploying the following open-source projects:

Deploying Applications

The images generated from these dockerfiles only contain the dependencies required to run the application - this approach allows for application code to be mounted within a container at runtime, eliminating the need to rebuild the image on every change.

The cbiitss repository provides application-specific images and instructions for deploying each application.

Base Images

| Default image | File | Description | | ——————— | ———————————— | —————————————————- | | cbiitss/python27:c6 | python-base.c6.dockerfile | CentOS 6 / Python 2.7.12 | | cbiitss/r_base:c6 | r-base.c6.dockerfile | CentOS 6 / Python 2.7.12 / R 3.3 | | cbiitss/python27:c7 | python-base.c7.dockerfile | CentOS 7 / Python 2.7.5 (system default) | | cbiitss/r_base:c7 | r-base.c7.dockerfile | CentOS 7 / Python 2.7.5 / R 3.3 |

Application Images (CentOS 6)

| Image Name | File | Description | | ———————————– | ————————————— | ———————————————— | | cbiitss/absoluterisk:c6 | absoluteRisk.c6.dockerfile | CentOS 6 / Absolute Risk Calculator | | cbiitss/apc:c6 | apc.c6.dockerfile | CentOS 6 / Age Period Cohort Tool | | cbiitss/biomarkertools:c6 | biomarkerTools.c6.dockerfile | CentOS 6 / Biomarker Tools Suite | | cbiitss/cancerterms:c6 | CancerTerms.c6.dockerfile | CentOS 6 / Cancer Terms API | | cbiitss/comets:c6 | comets.c6.dockerfile | CentOS 6 / COMETS | | cbiitss/econsent:c6 | econsent.c6.dockerfile | CentOS 6 / eConsent | | cbiitss/jpsurv:c6 | jpsurv.c6.dockerfile | CentOS 6 / jpsurv | | cbiitss/ldlink:c6 | LDlink.c6.dockerfile | CentOS 6 / LDlink | | cbiitss/lungcancerscreening:c6 | lungCancerScreening.c6.dockerfile | CentOS 6 / Lung Cancer Screening Tool | | cbiitss/ncidose:c6 | NCIDose.c6.dockerfile | CentOS 6 / NCI Dose | | cbiitss/pathway:c6 | pathway.c6.dockerfile | CentOS 6 / Pathway Analysis Tool |

Application Images (CentOS 7)

| Image Name | File | Description | | ———————————– | ————————————— | ———————————————— | | cbiitss/absoluterisk:c7 | absoluteRisk.c7.dockerfile | CentOS 7 / Absolute Risk Calculator | | cbiitss/apc:c7 | apc.c7.dockerfile | CentOS 7 / Age Period Cohort Tool | | cbiitss/biomarkertools:c7 | biomarkerTools.c7.dockerfile | CentOS 7 / Biomarker Tools Suite | | cbiitss/cancerterms:c7 | CancerTerms.c7.dockerfile | CentOS 7 / Cancer Terms API | | cbiitss/comets:c7 | comets.c7.dockerfile | CentOS 7 / COMETS | | cbiitss/econsent:c7 | econsent.c7.dockerfile | CentOS 7 / eConsent | | cbiitss/jpsurv:c7 | jpsurv.c7.dockerfile | CentOS 7 / jpsurv | | cbiitss/ldlink:c7 | LDlink.c7.dockerfile | CentOS 7 / LDlink | | cbiitss/lungcancerscreening:c7 | lungCancerScreening.c7.dockerfile | CentOS 7 / Lung Cancer Screening Tool | | cbiitss/ncidose:c7 | NCIDose.c7.dockerfile | CentOS 7 / NCI Dose | | cbiitss/pathway:c7 | pathway.c7.dockerfile | CentOS 7 / Pathway Analysis Tool |

To start an application, clone the application source and mount it within the container in the docker run command. This is an example for the Age Period Cohort Tool.

eate a deployment directory for the application
r -p /local/apc/app /local/apc/logs

one the age period cohort repository and copy it to the deployment directory
clone https://github.com/CBIIT/nci-webtools-dceg-age-period-cohort.git /tmp/age-period-cohort
r /tmp/age-period-cohort/apc/* /local/apc/app/

nce the application also requires resources found in a different repository,
 should should clone it and copy its contents to the deployment directory
clone https://github.com/CBIIT/nci-analysis-tools-web-presence.git /tmp/web-presence
r /tmp/web-presence/common/ /local/apc/app/

art the application
er rm --force apc

er run \
detach \
name apc \
publish 8000:8000 \
user `id -u`:`id -g` \
volume /etc/localtime:/etc/localtime:ro \
volume /local/apc/:/deploy/ \
iitss/apc

ew the running container
er ps

vigate to http://localhost:8000 to see the application in action!

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.