Container Specifications

November 3, 2022 ยท View on GitHub

Each container should provide a well-defined metadata header that allows the final users to test, deploy and get support around the container. We explain here the containers metadata, their meaning and use in BioContainers:

FieldDescriptionOptionalExample
LABEL base_imageThe original image where the software has been builtMandatorybase_image=" biodckr/biodocker"
LABEL versionVersion of the tool's DockerfileMandatoryversion="2"
LABEL software.versionVersion of the software or toolMandatorysoftware.version="2015020"
LABEL softwareName of the software or toolMandatorysoftware="Comet"
LABEL about.summaryA short description of the software or tool.Mandatoryabout.summary="Peptide" identification
LABEL about.homeThe original software website.Mandatoryabout.home="http://comet-ms.sourceforge.net/"
LABEL about.documentationURL(s) containing information about softwareOptionalabout.documentation="http://comet-ms.sourceforge.net/"
LABEL about.licenseSPDX license specification. If not in the SPDX list, specify URL in license_file>Mandatoryabout.license="SPDX:Apache-2.0"
LABEL about.license_fileLicense path location in the container or url (according to license requirements)Optional
LABEL about.tagsTags about the software that enable to find and classify the software tool.Optionalabout.tags="proteomics, mass spectrometry, biocontainers"
LABEL maintainerThe developer in charge of the container/softwareMandatorymaintainer="Yasset Perez-Riverol yperez@ebi.ac.uk"
LABEL extra.identifiersExtra identifiers are external identifiers in other resources that will allow to pull metadata, an external information from other resources (e.g biotools). In order to be compatible with Docker specification the domain (database) of the identifiers should be specified in the name of the label.Optionalextra.identifiers.biotools=abyss

Dockerfile example (Single lines LABEL):

# Base Image
FROM biocontainers/biocontainers:latest

# Metadata
LABEL base_image="biocontainers:latest"
LABEL version="3"
LABEL software="Comet"
LABEL software.version="2016012"
LABEL about.summary="an open source tandem mass spectrometry sequence database search tool"
LABEL about.home="http://comet-ms.sourceforge.net/"
LABEL about.documentation="http://comet-ms.sourceforge.net/parameters/parameters_2016010/"
LABEL about.license="SPDX:Apache-2.0"
LABEL about.license_file="/usr/share/common-licenses/Apache-2.0"
LABEL about.tags="Proteomics"
LABEL extra.identifiers.biotools=comet
LABEL maintainer="Felipe da Veiga Leprevost <felipe@leprevost.com.br>"

USER biodocker

RUN ZIP=comet_binaries_2016012.zip && \
  wget https://github.com/BioDocker/software-archive/releases/download/Comet/$ZIP -O /tmp/$ZIP && \
  unzip /tmp/$ZIP -d /home/biodocker/bin/Comet/ && \
  chmod -R 755 /home/biodocker/bin/Comet/* && \
  rm /tmp/$ZIP

RUN mv /home/biodocker/bin/Comet/comet_binaries_2016012/comet.2016012.linux.exe /home/biodocker/bin/Comet/comet

ENV PATH /home/biodocker/bin/Comet:$PATH

WORKDIR /data/

Dockerfile example (Multiple lines LABEL):


# Base Image
FROM biocontainers/biocontainers:latest

# Metadata
LABEL base_image="biocontainers:latest" \
      version="3"   \
      software="Comet" \
      software.version="2016012" \
      about.summary="an open source tandem mass spectrometry sequence database search tool" \
      about.home="http://comet-ms.sourceforge.net/" \
      about.documentation="http://comet-ms.sourceforge.net/parameters/parameters_2016010/" \
      about.license="SPDX:Apache-2.0" \
      about.license_file="/usr/share/common-licenses/Apache-2.0" \
      about.tags="Proteomics" \
      extra.identifiers.biotools=comet

# Maintainer
LABEL maintainer="Felipe da Veiga Leprevost <felipe@leprevost.com.br>"

USER biodocker

RUN ZIP=comet_binaries_2016012.zip && \
  wget https://github.com/BioDocker/software-archive/releases/download/Comet/$ZIP -O /tmp/$ZIP && \
  unzip /tmp/$ZIP -d /home/biodocker/bin/Comet/ && \
  chmod -R 755 /home/biodocker/bin/Comet/* && \
  rm /tmp/$ZIP

RUN mv /home/biodocker/bin/Comet/comet_binaries_2016012/comet.2016012.linux.exe /home/biodocker/bin/Comet/comet

ENV PATH /home/biodocker/bin/Comet:$PATH

WORKDIR /data/