Coder Social home page Coder Social logo

dnousome / dockers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ccbr/dockers

0.0 0.0 0.0 1013.67 MB

A collection of Dockerfiles to facilitate reproducibility across computing environments.

Shell 1.88% Python 19.80% Perl 1.71% C 1.84% R 1.23% Makefile 0.01% Dockerfile 73.52% Rez 0.02%

dockers's Introduction

⚓ Dockers ⚓

This repository contains recipes to Dockers created by CCBR team members to be used :

  • in our on-prem pipelines orchestrated using Snakemake and Nextflow. These pipelines run on Biowulf.
  • in pipelines running on DNAnexus (and SBG).
  • in pipelines running on AWS using AWS Genomics CLI

The docker images were pushed to dockerhub and are available here.

General conventions:

  • Each docker image has the following folders:
    • /data2 → Default working directory
    • /opt2 → Tools/software installed inside the docker container go here

NOTE: The suffix 2 ensures that there is no conflict with the hosts' /data and /opt folders.

  • Original recipe Dockerfile is copied into the docker image itself in the /opt2 folder.

  • Most docker images are built using our own base image nciccbr/ccbr_ubuntu_base_20.04:latest

NOTE: Some of the older docker images may use one of the following base image:

  • ubuntu:16.04
  • ubuntu:18.04
  • bitnami/minideb:jessie : Docker images built using this base image tend to have a smaller digital footprint.
  • Docker images should have the following environmental variables:
    • BUILD_DATE
    • BUILD_TAG
    • REPONAME

How the base image nciccbr/ccbr_ubuntu_base_20.04 is built:

  • uses ubuntu:20.04 LTS as its base image
  • includes /data2 and /opt2 folder
  • workdir is always /data2
  • contains most commonly used bioinformatics tools like
    • bwa
    • bowtie2
    • samtools
    • bedtools
    • etc.

How to build your own docker image:

  • use nciccbr/ccbr_ubuntu_base_20.04:SOMETAG as base image
  • add "layers" on top of the base image in order to add tools of interest

Use these lines to kick start your recipe:

FROM nciccbr/ccbr_ubuntu_base_20.04:SOMETAG

# build time variables
ARG BUILD_DATE="000000"
ENV BUILD_DATE=${BUILD_DATE}
ARG BUILD_TAG="000000"
ENV BUILD_TAG=${BUILD_TAG}
ARG REPONAME="000000"
ENV REPONAME=${REPONAME}

# your layers go here!!!

COPY Dockerfile /opt2/Dockerfile_${REPONAME}.${BUILD_TAG}
RUN chmod a+r /opt2/Dockerfile_${REPONAME}.${BUILD_TAG}

NOTE: Dockerfile template is available under the resources folder.

  • Once your recipe is ready, build and push scripts are from the scripts folder can be used to:
    • automatically build and push built docker images to the nciccbr dockerhub account
    • both scripts take only 1 argument, ie., TAG
    • build expects the folder to contain a file named Dockerfile.TAG which is symlinked to Dockerfile prior to initiating a build
    • build extracts the name of the repo from the current folder name
    • push pushes the built docker over to dockerhub

eg.: Running the following:

> /path/to/scripts/build v2

inside the folder /some/path/ccbr_xyz will

  • look for a file Dockerfile.v2 in the folder
  • symlink it to Dockerfile
  • build a docker with the tag nciccbr/ccbr_xyz:v2

Following this up with:

> /path/to/scripts/path v2

will

  • push nciccbr/ccbr_xyz:v2 to Dockerhub
  • replace nciccbr/ccbr_xyz:latest with nciccbr/ccbr_xyz:v2 on dockerhub

NOTE: If you are not a member of the nciccbr org on Dockerhub, then you cannot use push script as-in. You may have to modify the dockerhub_account variable appropriately for a successful push.

dockers's People

Contributors

kelly-sovacool avatar kopardev avatar skchronicles avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.