ローカルDocker環境

Harako-RNAseqの導入

WindowsまたはLinuxでバージョン指定のGHCRイメージを実行し、開発やソース変更を行う場合はローカルでビルドします。

導入前の確認

必要なソフトウェア

公開イメージを直接実行する場合は、Linuxコンテナを実行できるDockerと、127.0.0.1:8501へ接続できるブラウザを用意します。justの起動ショートカットにはGit、just、リポジトリのチェックアウトが必要です。Python、R、Snakemake、fastp、Salmonをホスト側へ個別に導入する必要はありません。

動作確認済み環境

WindowsのDocker DesktopとUbuntu/LinuxのDockerで動作を確認しています。イメージはlinux/amd64向けで、Apple Siliconのネイティブ実行には対応していません。

CPUとメモリ

小規模から中規模の解析では、4コア以上のCPUとおおむね8~16 GBのメモリが目安です。必要量はサンプル数、参照配列のサイズ、行列の大きさによって増加します。

ディスク容量:入力FASTQ、展開後のfastp中間ファイル、Salmonインデックスと定量結果、キャッシュされた参照バンドル、Run出力、約1.2 GBのDockerイメージ、Dockerのビルドレイヤーに必要な容量を確保してください。Harako-RNAseqは中間ファイルを自動削除しません。

現在のリポジトリからHarakoを起動する

1. 通常利用

just appが推奨コマンドです。v0.3.0-beta.2の固定イメージを使い、依存関係をローカルでコンパイルしません。just app-releaseは同じ動作を明示する任意の別名です。

2. 高速なソース開発

just app-dev-fastは公開版ランタイム上へローカルソースをマウントします。依存関係を定義するファイルがリリースタグと異なる場合は停止します。

3. 完全なソースビルド

just app-buildは完全なイメージを構築します。依存関係を変更した場合はこちらを使用します。

公開版を初めて使うときは約1.2 GBのイメージを取得する場合がありますが、RやBioconductorをコンパイルしません。2回目以降の起動はDocker Desktopやストレージに応じて通常は数秒から数十秒です。高速起動はDocker CIやリリース検証の代わりにはなりません。

Windows PowerShell

Docker DesktopをLinuxコンテナモードで起動し、ホスト側の入出力ディレクトリを明示して、バージョン固定イメージを実行します。

$InputDir = "D:\rna\input"
$OutputDir = "D:\rna\output"
New-Item -ItemType Directory -Force $InputDir, $OutputDir | Out-Null
docker pull ghcr.io/do-shima/harako-rnaseq:v0.3.0-beta.2
docker run --rm -p 127.0.0.1:8501:8501 `
  -e PYTHONPATH=/app -e "HOST_INPUT=$InputDir" -e "HOST_OUT=$OutputDir" `
  --mount "type=bind,src=$InputDir,dst=/input,readonly" `
  --mount "type=bind,src=$OutputDir,dst=/output" `
  ghcr.io/do-shima/harako-rnaseq:v0.3.0-beta.2 `
  streamlit run app/ui/app_ui.py --server.address 0.0.0.0 `
  --server.port 8501 --server.headless true --browser.gatherUsageStats false

Windowsのバインドマウントを確認するときはPowerShellを使用してください。入力は/inputへ読み取り専用、出力は/outputへ読み書き可能としてマウントします。

Ubuntu/Linux

Docker Engineを導入して起動し、入出力を明示してバージョン固定イメージを実行します。

mkdir -p input output
docker pull ghcr.io/do-shima/harako-rnaseq:v0.3.0-beta.2
docker run --rm -p 127.0.0.1:8501:8501 \
  -e PYTHONPATH=/app -e "HOST_INPUT=$(pwd)/input" -e "HOST_OUT=$(pwd)/output" \
  --mount "type=bind,src=$(pwd)/input,dst=/input,readonly" \
  --mount "type=bind,src=$(pwd)/output,dst=/output" \
  ghcr.io/do-shima/harako-rnaseq:v0.3.0-beta.2 \
  streamlit run app/ui/app_ui.py --server.address 0.0.0.0 \
  --server.port 8501 --server.headless true --browser.gatherUsageStats false

どちらの環境でも、起動後にhttp://127.0.0.1:8501を開きます。Harako-RNAseqはローカル・単一ユーザー向けです。このポートを外部公開してマルチユーザーサービスとして運用しないでください。

ベータチャンネルと完全なソースビルド

再現可能な研究では、上記のバージョン固定タグを使用します。最新のベータ版を意図的に追跡する場合に限り、ghcr.io/do-shima/harako-rnaseq:betaへ置き換えてください。

依存関係の変更後やソースイメージを正確に検証する場合は、ソースをクローンしてjust app-buildを使用します。通常利用のjust appがソースビルドへ切り替わることはありません。

git clone https://github.com/do-shima/harako-rnaseq.git
cd harako-rnaseq
git checkout v0.3.0-beta.2
just app-build

マウント、初回ビルド時間、ポート転送、プライバシー、対応環境の詳細は、GitHubの導入ドキュメントを参照してください。