Dockerfile készítése

A rövid áttekintő bejegyzés után készítünk egy Dockerfile-t, amely a Trim Galore programot tartalmazza.

Docker (alap)parancsok

  • FROM: az alap (base image), amire épül a konténer (pl.: linux 16.04)
  • MAINTAINER (opcionális): a dockerfile készítőjének a nevét, emailcímét tartalmazza
  • RUN:  a kép (image) létrehozása során futtatandó parancsok
  • ADD: fájl másolása a docker image-be
  • ENV: környezeti változó definiálása
  • CMD: a konténer indításakor automatikusan lefutó parancs
  • ENTRYPOINT: a konténer indításakor automatikusan lefutó parancs
  • WORKDIR: az alapértelmezett könyvtár a konténer indulásakor

Dockerfile készítése

Készítünk egy új fájlt, ami a Trim Galore programcsomagot fogja tartalmazni. A Trim Galore a Cutadapt-ot is használja, ezért ennek a telepítését is el kell végezni a Dockerfile-on belül. 

# base image letöltése
FROM ubuntu:16.04

# készítő, fejlesztő
MAINTAINER Robert Herczeg <herczeg.robert@pte.hu>

# update
RUN apt-get update && apt-get -y install wget\
    unzip \
    python3-pip && \
    rm -rf /var/lib/apt/lists/*

# Install cutadapt
ENV CUTADAPT_VERSION 1.14
RUN pip3 install cutadapt==${CUTADAPT_VERSION}

# set working dir
WORKDIR /tmp

# install Trim Galore
RUN wget http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/trim_galore_v0.4.4.zip
RUN unzip trim_galore_v0.4.4.zip

# create symlink
RUN ln -s /tmp/trim_galore /usr/local/bin/trim_galore

CMD ["bash"]

A FROM részben megadtuk, hogy a 16.04-es ubuntu legyen az alapértelmezett image. Ezután azokat a programokat telepítetjük, amik szükségesek a Trim Galore futtatásához. A wget a letöltéshez, az unzip a kimötörítéshet kell. A python3-pip a Cutadapt telepítését végzi el.

# update
RUN apt-get update && apt-get -y install wget\
    unzip \
    python3-pip && \
    rm -rf /var/lib/apt/lists/*

Az utolsó sorral a cache-t töröljük, így csökkentve a konténer méretét. Ezt követően a telepítjük Cutadapt-ot. Az ENV-el megadtuk, hogy verziót szeretnénk telepítani, amihez a pip3 -t használjuk.

# Install cutadapt
ENV CUTADAPT_VERSION 1.14
RUN pip3 install cutadapt==${CUTADAPT_VERSION}

A WORKDIR megadásával a továbbiakban a konténeren belül ebbe fog dolgozni a docker, így a wget-el letöltendő zip fájl is ide fog kerülni, amit majd az unzip-el csomagolunk ki.

# set working dir
WORKDIR /tmp

# install Trim Galore
RUN wget http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/trim_galore_v0.4.4.zip
RUN unzip trim_galore_v0.4.4.zip

Utolsó lépésben készítünk egy szimbolikus linket, illetve megadjuk a CMD-t, így a konténert elindítva egyből a bash-t fogjuk futtatni.

# create symlink
RUN ln -s /tmp/trim_galore /usr/local/bin/trim_galore

CMD ["bash"]

A konténer felépítését a docker build parancs kiadásával végezzük el.
A “-t” kapcsolóval nevezzük el a konténert. Ellenőrizni a docker images paranccsal tudjuk. A konténer elkészülte után már “csak ” futtatni kell.

docker-bioinformatika-trim-galore
docker-bioinformatika-trim-galore
# konténer felépítése
docker build -t trimgalore:1 .

# konténer futtatása
# első példa
docker run -it trimgalore:1 bash

# második példa
docker run -t trimgalore:1 /tmp/trim_galore

A két példa között a fő különbség, hogy az elsőben “belépünk” a konténerbe (az “-i” kapcsoló az interaktív módot jelöli) és onnan futtatjuk a Trim Galore-t, a második esetben nem lépünk be a konténerbe, hanem a tmp könyvtárban megtalálható trim_galore parancsot hívjuk meg. Mindegyik példának meg van a maga előnye-hátránya, amelyet most nem részletezünk.

Dockerfile letöltése

Leave a reply