我还没有找到令人满意的答案。我有一个简单的脚本,希望在守护程序模式下运行多个容器:
#!/usr/bin/env bash
docker run -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data -v /home/gsilver1/data/QuickUMLS/data/:/data/UMLS ahc-nlpie-docker.artifactory.umn.edu/qumls:1 /home/QuickUMLS/run.sh
docker run -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/b9:1 /usr/share/biomedicus/scripts/run_biomedicus.sh
docker run --env umlsUser='USER' --env umlsPass='PW' -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/clmp:4 /usr/share/clamp/scripts/run_clamp.sh
docker run -d -it -v /mnt/DataResearch/gsilver1/note_test/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/mm:4 /usr/share/public_mm/scripts/run_metamap.sh
docker run --env ctakes_umlsuser='USER' --env ctakes_umlspw='PW' -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/ctks:1 /usr/share/ctakes/scripts/run_ctakes.sh
从终端执行时,这些命令运行良好。但是,从脚本运行时,出现以下错误:
(base) gsilver1@d0pconcourse002:~/development/scripts$ ./run_nlp.sh
./run_nlp.sh: line 3: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data -v /home/gsilver1/data/QuickUMLS/data/:/data/UMLS ahc-nlpie-docker.artifactory.umn.edu/qumls:1 /home/QuickUMLS/run.sh: No such file or directory
./run_nlp.sh: line 5: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/b9:1 /usr/share/biomedicus/scripts/run_biomedicus.sh: No such file or directory
./run_nlp.sh: line 7: docker run --env umlsUser='horcle' --env umlsPass='nEj123456' -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/clmp:4 /usr/share/clamp/scripts/run_clamp.sh: No such file or directory
./run_nlp.sh: line 9: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/mm:4 /usr/share/public_mm/scripts/run_metamap.sh: No such file or directory
./run_nlp.sh: line 11: docker run --env ctakes_umlsuser='horcle' --env ctakes_umlspw='nEj123456' -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/ctks:1 /usr/share/ctakes/scripts/run_ctakes.sh: No such file or directory
(base) gsilver1@d0pconcourse002:~/development/scripts$
这似乎表明脚本未在docker命令末尾解释命令以在docker容器的文件系统中运行,而不是从远程文件系统中运行。我试过在docker命令周围加上引号,然后使用-c以特定用户身份运行,等等。一切都无济于事。如何获取在每个Docker容器中运行的命令,而无需修改Docker映像的入口点?
尝试用引号将路径包裹起来,有时会引起意外的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句