見出し画像

ミニマムなDocker fileを作る

はじめに (コンセプト)

Linuxベースでバイオインフォマティクスツールの環境構築を実施してツールの動作確認などをしたいことが多々ある。そのため、軽量なLinux+Python環境をDockerで構築しようと思ったが、意外にもそのような情報は少ない。そこで備忘録もかねてDockerfileの作成からPushまでを書こうと思う。

How to code

とりわけバイオインフォマティクスツールの利用を優先したいため、以下のような環境を構築する。
- Core unix: debin9 (slim) + bioconda3
これによって、少なくともLinuxベース (軽量!)でBiocondaが入るため、大抵のツールは導入可能になる。例えば、condaやpipで目的のツールを入れることができる。
以下がそのDockerfileである。

# Base image
FROM debian:9-slim

# Install Miniconda3 & Bioconda
RUN apt-get -qq update && apt-get -qq -y install curl bzip2 \
  && curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /tmp/miniconda.sh \
  && bash /tmp/miniconda.sh -bfp /usr/local \
  && rm -rf /tmp/miniconda.sh \
  && conda install -y python=3 \
  && conda update conda \
  && conda config --add channels r \
  && conda config --add channels defaults \
  && conda config --add channels conda-forge \
  && conda config --add channels bioconda \
  && apt-get -qq -y remove curl bzip2 \
  && apt-get -qq -y autoremove \
  && apt-get autoclean \
  && rm -rf /var/lib/apt/lists/* /var/log/dpkg.log \
  && conda clean --all --yes

ENV PATH /opt/conda/bin:$PATH

これを「Dockerfile」として保存する。その際、拡張子はつけない。

Docker Hubにあげるまで

作成したDockerfileをBuildする。

# Dockerfileのあるディレクトリで以下のコマンドを実行
docker build -t <NAME> .
# <NAME>は好きな名前

これでローカル環境でDockerfile中の環境が使用可能。ローカル環境で使用するには以下のコマンド。

docker run -itv $(pwd):/home <NAME>

これで<NAME>内のHomeディレクトリと現在のディレクトリのパスがつながった状態で<NAME>環境を動かすことができる。
次に、Pushまでの流れを書いていく。

# NAMEの<IMAGE ID>を確認する
docker images
# Docker Hubに登録している<USR>を記載する
docker tag <IMEGE ID> <USR>/<NAME>:latest
# tag化が完了したらpushでDocker Hubに登録する
docker push <USR>/<NAME>:latest

Pushすることで、Docker Hub (Docker Hub Container Image Library | App Containerization) で検索・確認すると<NAME>で登録されている。



いいなと思ったら応援しよう!