t.ohta [at] dbcls.rois.ac.jp
途中参加、途中退出は自由です。*印が付いている時間がオンラインでの集合目安時間です。その後は繋いだままでもいいですし、一度切って作業に集中しても構いません。
Time | |
---|---|
10:00-10:15 | 今日の作業確認* |
10:15-11:00 | 各自作業 |
11:00-11:30 | update session* |
11:30-13:00 | 各自作業 |
13:00-14:00 | ランチ* |
14:00-17:00 | 開発とディスカッション |
17:00-17:30 | ラップアップ* |
19:00- | 有識者会議* |
docker-compose
から docker compose
へ
hints:
ResourceRequirement:
coresMin: xxx <- の数で scatterの並列実行数を制御するしかないみたい
If the same process requirement appears at different levels of the workflow, the most specific instance of the requirement is used, that is, an entry in requirements on a process implementation such as CommandLineTool will take precedence over an entry in requirements specified in a workflow step, and an entry in requirements on a workflow step takes precedence over the workflow. Entries in hints are resolved the same way.
hints
で指定している場合は、上の方で requirements
を使えば上書きできる
Requirements override hints. If a process implementation provides a process requirement in hints which is also provided in requirements by an enclosing workflow or workflow step, the enclosing requirements takes precedence.
参考(石井): https://www.biostars.org/p/380743/ 参考(石井):全体側で、8GBとかいてあって、中の使うツールが32GB必要としていたら、中のツールのものが採用される。
Rootless モードは Docker デーモンのインストールに root 権限を必要としないだけでなく、 事前準備 においても不要です。
Rootless モードは Docker Engine v19.03 から導入されました。
$ docker --version \ Docker version 19.03.8, build afacb8b7f0
$ curl -fsSL https://get.docker.com/rootless | sh
docker.tgz
と rootless.tgz
を download して、$HOME/bin
以下に展開する# Installing stable version 20.10.8
Aborting because rootful Docker is running and accessible. Set FORCE_ROOTLESS_INSTALL=1 to ignore.
curl -fsSL https://get.docker.com/rootless | FORCE_ROOTLESS_INSTALL=1 sh
systemctl --user start docker.service
をしているsystemctl status docker.service
は root docker, systemctl --user status docker.service
は rootless docker になっていて、別々の docker daemon が動いているwhich docker
は /usr/bin/docker
/usr/bin/docker ps
も ~/bin/docker ps
も両方同じ結果を返す
DOCKER_SOCK
とかでどれを指定するかの問題なのだと思われるDOCKER_HOST=unix:///run/user/1000/docker.sock docker ps
で rootless docker を使用できたmkdir -p sandbox/rootless && cd sandbox/rootless
docker run -it --rm -u 0:0 -v $PWD:$PWD -w $PWD -p 80:80 ubuntu:latest bash
docker run -it --rm -u 0:0 -v $PWD:$PWD -w $PWD -p 8080:8080 ubuntu:latest bash
id
=> uid=0(root) gid=0(root) groups=0(root)
ls -l
=> root:root
touch foo
=> Host 側では 1000:1000
/run/user/1000/docker.sock
docker run -it --rm -v $PWD:$PWD -w $PWD -v /run/user/1000/docker.sock:/var/run/docker.sock -v $HOME/bin/docker:/usr/bin/docker ubuntu:latest bash
docker ps
8d48a6321b54 ubuntu:latest "bash" 3 seconds ago Up 1 second agitated_benz
$ cat docker-compose.yml
version: "3"
services:
app:
image: ubuntu:latest
volumes:
- ${PWD}:${PWD}
restart: on-failure
working_dir: ${PWD}
ports:
- 8080:8080
command: ["sleep", "infinity"]
$ export DOCKER_HOST=unix:///run/user/1000/docker.sock
$ docker-compose up -d
Creating network "rootless_default" with the default driver
Creating rootless_app_1_4761f6b4242a ... done
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17f4ec371387 ubuntu:latest "sleep infinity" 4 seconds ago Up 2 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp rootless_app_1_d8f844bf6247
commonworkflowlanguage/cwltool:1.0.20191225192155
がなくなってた
suecharo/cwltool:1.0.20191225192155
を push しておいた$ git clone git@github.com:suecharo/sapporo_test_workflows.git
$ cd sapporo_test_workflows
$ docker run -i --rm \
-v /run/user/1000/docker.sock:/var/run/docker.sock \
-v $HOME/bin/docker:/usr/bin/docker \
-v /tmp:/tmp \
-v $PWD:$PWD \
-w=$PWD \
suecharo/cwltool:1.0.20191225192155 \
--outdir ./results/qc_and_trimming/cwl \
./qc_and_trimming/cwl/trimming_and_qc.cwl \
--fastq_1 ./qc_and_trimming/ERR034597_1.small.fq.gz \
--fastq_2 ./qc_and_trimming/ERR034597_2.small.fq.gz \
--nthreads 2
INFO /usr/local/bin/cwltool 1.0.20191225192155
INFO Resolved './qc_and_trimming/cwl/trimming_and_qc.cwl' to 'file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/qc_and_trimming/cwl/trimming_and_qc.cwl'
INFO [workflow ] start
INFO [workflow ] starting step trimming
INFO [step trimming] start
INFO ['docker', 'pull', 'quay.io/biocontainers/trimmomatic:0.38--1']
INFO [job trimming] /tmp/4kpx7i_w$ docker \
run \
-i \
--volume=/tmp/4kpx7i_w:/pulQFx:rw \
--volume=/tmp/gwb9hcws:/tmp:rw \
--volume=/home/ubuntu/sandbox/rootless/sapporo_test_workflows/qc_and_trimming/ERR034597_1.small.fq.gz:/var/lib/cwl/stg5a064d4d-ec4e-46bd-893f-0114187f4eaa/ERR034597_1.small.fq.gz:ro \
--volume=/home/ubuntu/sandbox/rootless/sapporo_test_workflows/qc_and_trimming/ERR034597_2.small.fq.gz:/var/lib/cwl/stgb2f710e6-0061-4261-8467-1b498228057d/ERR034597_2.small.fq.gz:ro \
--workdir=/pulQFx \
--read-only=true \
--log-driver=none \
--user=0:0 \
--rm \
--env=TMPDIR=/tmp \
--env=HOME=/pulQFx \
--cidfile=/tmp/exltyocf/20210816072136-650899.cid \
quay.io/biocontainers/trimmomatic:0.38--1 \
trimmomatic \
PE \
-threads \
2 \
/var/lib/cwl/stg5a064d4d-ec4e-46bd-893f-0114187f4eaa/ERR034597_1.small.fq.gz \
/var/lib/cwl/stgb2f710e6-0061-4261-8467-1b498228057d/ERR034597_2.small.fq.gz \
ERR034597_1.small.fq.trimmed.1P.fq \
ERR034597_1.small.fq.trimmed.1U.fq \
ERR034597_1.small.fq.trimmed.2P.fq \
ERR034597_1.small.fq.trimmed.2U.fq \
ILLUMINACLIP:/usr/local/share/trimmomatic/adapters/TruSeq2-PE.fa:2:40:15 \
LEADING:20 \
TRAILING:20 \
SLIDINGWINDOW:4:15 \
MINLEN:36 > /tmp/4kpx7i_w/trimmomatic-pe-stdout.log 2> /tmp/4kpx7i_w/trimmomatic-pe-stderr.log
INFO [job trimming] Max memory used: 4138MiB
INFO [job trimming] completed success
INFO [step trimming] completed success
INFO [workflow ] starting step qc_1
INFO [step qc_1] start
INFO ['docker', 'pull', 'quay.io/biocontainers/fastqc:0.11.9--0']
INFO [job qc_1] Max memory used: 3723MiB
INFO [job qc_1] completed success
INFO [step qc_1] completed success
INFO [workflow ] starting step qc_2
INFO [step qc_2] start
INFO [job qc_2] /tmp/sho17x8u$ docker \
run \
-i \
--volume=/tmp/sho17x8u:/pulQFx:rw \
--volume=/tmp/mgkcovmq:/tmp:rw \
--volume=/home/ubuntu/sandbox/rootless/sapporo_test_workflows/qc_and_trimming/ERR034597_2.small.fq.gz:/var/lib/cwl/stgb4cec480-504d-44b3-b986-742de874a62f/ERR034597_2.small.fq.gz:ro \
--workdir=/pulQFx \
--read-only=true \
--log-driver=none \
--user=0:0 \
--rm \
--env=TMPDIR=/tmp \
--env=HOME=/pulQFx \
--cidfile=/tmp/6oymek_x/20210816072226-066503.cid \
quay.io/biocontainers/fastqc:0.11.9--0 \
fastqc \
-o \
. \
--threads \
2 \
/var/lib/cwl/stgb4cec480-504d-44b3-b986-742de874a62f/ERR034597_2.small.fq.gz > /tmp/sho17x8u/fastqc-stdout.log 2> /tmp/sho17x8u/fastqc-stderr.log
INFO [job qc_2] Max memory used: 3740MiB
INFO [job qc_2] completed success
INFO [step qc_2] completed success
INFO [workflow ] completed success
{
"qc_result_1": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small_fastqc.html",
"basename": "ERR034597_1.small_fastqc.html",
"class": "File",
"checksum": "sha1$3f61001342c78fa8d3b8c5c4c629f9a25c121630",
"size": 592394,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small_fastqc.html"
},
"qc_result_2": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_2.small_fastqc.html",
"basename": "ERR034597_2.small_fastqc.html",
"class": "File",
"checksum": "sha1$788f1cc1fd236028c6bb87e76424df5cdb5bafb8",
"size": 592566,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_2.small_fastqc.html"
},
"trimmed_fastq1P": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.1P.fq",
"basename": "ERR034597_1.small.fq.trimmed.1P.fq",
"class": "File",
"checksum": "sha1$5188cdb59cab8010eb673e8bc113b7fd7a686660",
"size": 5566650,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.1P.fq"
},
"trimmed_fastq1U": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.1U.fq",
"basename": "ERR034597_1.small.fq.trimmed.1U.fq",
"class": "File",
"checksum": "sha1$be4d3444537d2596d122db1ca8e5955954094f6b",
"size": 187289,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.1U.fq"
},
"trimmed_fastq2P": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.2P.fq",
"basename": "ERR034597_1.small.fq.trimmed.2P.fq",
"class": "File",
"checksum": "sha1$cd1451093c91a9b619337a7bfbe592ad76554745",
"size": 5560582,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.2P.fq"
},
"trimmed_fastq2U": {
"location": "file:///home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.2U.fq",
"basename": "ERR034597_1.small.fq.trimmed.2U.fq",
"class": "File",
"checksum": "sha1$dd7edf1b2d599eb3c8fa49426be55d8a0360561c",
"size": 80131,
"path": "/home/ubuntu/sandbox/rootless/sapporo_test_workflows/results/qc_and_trimming/cwl/ERR034597_1.small.fq.trimmed.2U.fq"
}
}
INFO Final process status is success
$ git clone git@github.com:ddbj/sapporo-service.git
$ cd sapporo-service
# docker-compose.yml の docker sock を編集する
# /var/run/docker.sock:/var/run/docker.sock を /run/user/1000/docker.sock:/var/run/docker.sock にする
$ docker-compose up -d
$ curl -s localhost:1122/service-info | jq .
{
"auth_instructions_url": "https://github.com/ddbj/sapporo-service",
"contact_info_url": "https://github.com/ddbj/sapporo-service",
"default_workflow_engine_parameters": [],
"executable_workflows": [
{
"workflow_attachment": [
{
"file_name": "trimming_and_qc.cwl",
...
# 動いている
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5030f83f9f50 ghcr.io/ddbj/sapporo-service:1.0.14 "tini -- uwsgi --yam…" 31 seconds ago Up 28 seconds 0.0.0.0:1122->1122/tcp sapporo-service
$ SAPPORO_HOST=0.0.0.0 SAPPORO_PORT=1122 bash tests/curl_example/post_runs/cwltool/remote_workflow/post_runs.sh
{"run_id":"ab3a3470-47c6-47bf-9911-90369e4a916c"}
$ curl -s localhost:1122/runs/ab3a3470-47c6-47bf-9911-90369e4a916c | jq .
{
"outputs": null,
"request": {
"tags": "{}",
"workflow_attachment": [],
"workflow_engine_name": "cwltool",
"workflow_engine_parameters": "{}",
"workflow_name": "trimming_and_qc_remote.cwl",
"workflow_params": "{\n \"fastq_1\": {\n \"class\": \"File\",\n \"location\": \"https://raw.githubusercontent.com/ddbj/sapporo-service/master/tests/resources/cwltool/ERR034597_1.small.fq.gz\"\n },\n \"fastq_2\": {\n \"class\": \"File\",\n \"location\": \"https://raw.githubusercontent.com/ddbj/sapporo-service/master/tests/resources/cwltool/ERR034597_2.small.fq.gz\"\n }\n}\n",
"workflow_type": "CWL",
"workflow_type_version": "v1.0",
"workflow_url": "https://raw.githubusercontent.com/ddbj/sapporo-service/master/tests/resources/cwltool/trimming_and_qc_remote.cwl"
},
...
dockerd-rootless-setuptool.sh install
を実行して、dockerd-rootless.sh
で起動すればOKdocker:dind-rootless
イメージを使えと書いてあったが、エラーで起動できず… newuidmap
周り?typeDSL
が付けられている