12
Galaxy Workshop Tokyo 2016 Galaxy Tool をパッケージする技術 Docker とは 株式会社アスケイド 那須野

Galaxy Tool をパッケージする技術 Docker とはdownload.pitagora-galaxy.org/data/document/GWT2016/GWT2016_Nasuno.pdf · Galaxy Workshop Tokyo 2016 3 Galaxy Tool とは 管理者権限があれば新しいツールを追加できます

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Galaxy Workshop Tokyo 2016

Galaxy Tool をパッケージする技術 Docker とは

株式会社アスケイド那須野 淳

Galaxy Workshop Tokyo 20162

Galaxy Tool とは

■左のパネルに並んでいるのが galaxy tools です

Galaxy Workshop Tokyo 20163

Galaxy Tool とは

■管理者権限があれば新しいツールを追加できます

■Public サーバは自分で好きにツールをインストールできません

■Community Galaxy VM なら可能です

Galaxy Workshop Tokyo 20164

Galaxy Tool とは

■どうやって追加する?

■Tool Shed からインストール

■手動でインストール

▪ sudo yum install package_name

▪ ./configure && make && sudo make install

Galaxy Workshop Tokyo 20165

Galaxy Tool の問題点

■Galaxy が動いているコンピュータにツールを  簡単にインストールできるとは限らない

■Tool dependencies の問題

■インストール時にツール間の依存関係を解決する仕組みがある    が、モノによっては別途パッケージ・ライブラリ等を    セットアップしておく必要あり

■ 特定のOSバージョンやディストリビューションでしか動かなかったり、依存するパッケージ名が異なるなど…

■コンパイルの問題

■モノによっては、コンパイル手順が複雑でスキルが求められます

Galaxy Workshop Tokyo 20166

解決策: ツールをGalaxy環境から隔離する

■ツールを実行するために必要なもの一式をパッケージング

■Docker による仮想化

■実行時に自動的に Docker イメージリポジトリからダウンロード    ⇒ ツール本体はGalaxy環境にインストール不要

■2014/08 リリース版からGalaxy ToolとしてDockerコンテナ形式を    すでにサポートしています https://wiki.galaxyproject.org/Admin/Tools/Docker

Computer

OS

Galaxy

FastQC TopHat Cufflinks

Computer

OS

Galaxy

FastQC TopHat Cufflinks

独立に呼び出す

Galaxy Workshop Tokyo 20167

Dockerとは

■必要なプログラムをパッケージングすることで、様々な環境に持ち運んで

  ソフトウェアを動かすことができます

■VMに比べてサイズが小さく、起動が高速なのでプロセス単位の仮想化に便利

■ホスト環境を汚さずに必要なプログラムを簡単に導入できます

  (=完全にキレイにアンインストール)

Linuxカーネルの機能を使って、ユーザプロセスの実行環境 (ユーザ空間)を独立した「コンテナ」として分離。

(参考) Dockerを支える技術 @enakai00さんhttp://www.slideshare.net/enakai/docker-34668707

コンテナ

https://www.docker.com/what-docker

Galaxy Workshop Tokyo 20168

Dockerを自分のコンピュータで使ってみる

■Docker をインストール

(Linux) curl -sSL https://get.docker.com | sh

(OS X) これまではVirtualBox等を利用してLinux VMへインストール

    ⇒「Docker for Mac」でVM環境が不要に!(OS標準の仮想化機能を利用)

      ※ ただし、プライベートベータテスト中。

■docker rundocker run -ti --name test ubuntu:14.04 bash ~# apt-get -q update && apt-get -y install tophat ~# tophat -v ~# exitdocker commit test tophat-dockerdocker run -ti tophat-docker tophat -v

Galaxy Workshop Tokyo 20169

Tool を Docker でパッケージングしてみる

■Dockerfileを書いて Docker Hub に登録するだけ

■既に Docker 化されているものもたくさんあります

FastQC の例

土台を選ぶ

FastQCインストールの

手順を書く

(オマケ) 標準コマンド

Galaxy Workshop Tokyo 201610

Docker化したToolをGalaxyで動かしてみる■job_conf.xml を編集

■ツール定義ファイル(XML形式)を作成

通常の wrapper xml から <requirements> タグの部分を変更

<tool id="tophat2_docker" name="Tophat Docker" version="0.7"> ... <requirements> <container type="docker">nasuno/tophat2:2.0.9</container> <!-- <requirement type="package" version="0.1.18">samtools</requirement> <requirement type="package" version="2.1.0">bowtie2</requirement> <requirement type="package" version="2.0.9">tophat2</requirement> -->

</requirements>

<destinations default="local"> <destination id="local" runner="local"/>

<destination id="docker_local" runner="local"> <param id="docker_enabled">true</param>

</destination></destinations>

<tools> <tool id="tophat2_docker" destination="docker_local" /></tools>

Galaxy Workshop Tokyo 201611

詳しい情報はwikiにまとめてあります!

Galaxy Workshop Tokyo 201612

Q & A