gpt4 book ai didi

linux - 运行 Docker 脚本时未找到文件,但在另一个 Docker 脚本中找到了文件

转载 作者:行者123 更新时间:2023-12-02 21:33:01 29 4
gpt4 key购买 nike

我正在尝试在 google 发布的 docker 中运行脚本。
我使用的命令将一些数据文件挂载到 docker 上一个名为“/input”的文件中(在 docker 内)。
当我运行脚本时,它说它没有找到输入文件。
但是,我确实使用了 -v 标志,并且我运行了一个脚本来确保输入文件在那里(在 docker 内)。
总而言之-当我运行时

find /input -name "*.fasta"
它输出:
/input/ucsc.hg19.chr20.unittest.fasta
根据需要,但是当我运行脚本时,它说
./dv-quick-start: 19: ./dv-quick-start: --ref=/input/ucsc.hg19.chr20.unittest.fasta: not found

完整脚本:
#!/bin/sh
BIN_VERSION="1.0.0"
INPUT_DIR="${PWD}/quickstart-testdata"
DATA_HTTP_DIR="https://storage.googleapis.com/deepvariant/quickstart-testdata"
OUTPUT_DIR="${PWD}/quickstart-output"

sudo docker run \
-v "${INPUT_DIR}":"/input" \
-v "${OUTPUT_DIR}":"/output" \
google/deepvariant:"${BIN_VERSION}" \
find /input -name "*.fasta"

sudo docker run \
-v "${INPUT_DIR}":"/input" \
-v "${OUTPUT_DIR}":"/output" \
google/deepvariant:"${BIN_VERSION}" \
/opt/deepvariant/bin/run_deepvariant \
--model_type=WGS \ **Replace this string with exactly one of the following [WGS,WES,PACBIO,HYBRID_PACBIO_ILLUMINA]**
--ref=/input/ucsc.hg19.chr20.unittest.fasta \
--reads=/input/NA12878_S1.chr20.10_10p1mb.bam \
--regions "chr20:10,000,000-10,010,000" \
--output_vcf=/output/output.vcf.gz \
--output_gvcf=/output/output.g.vcf.gz \
--intermediate_results_dir /output/intermediate_results_dir \ **This flag is optional. Set to keep the intermediate results.
完整输出:
/input/ucsc.hg19.chr20.unittest.fasta
--ref is required.
Pass --helpshort or --helpfull to see help on flags.
./dv-quick-start: 19: ./dv-quick-start: --ref=/input/ucsc.hg19.chr20.unittest.fasta: not found
我觉得有一些误解代表我,我会很感激任何帮助。
如果需要更多信息来回答这个问题,请告诉我。

最佳答案

您的 shell 脚本中有一些无关的文本会导致问题。删除“替换此字符串”和“此标志是可选的”文本以及它们之前的所有空格,使 \这些行的最后一个字符。
在 shell 脚本中,您可以使用 \ 将命令拆分为多行。 .但是,\必须是该行中的绝对最后一个字符;如果不是,它会转义后面的字符。

# one line: ls -al $HOME
ls -al \
$HOME

# two lines: ls -al " " more text here; $HOME
ls -al \ more text here
$HOME
在您的示例中,您在
sudo docker run \
...\
--model_type=WGS \ **Replace this string with exactly one of the following [WGS,WES,PACBIO,HYBRID_PACBIO_ILLUMINA]**

# This is seen as a separate command
--ref=/input/ucsc.hg19.chr20.unittest.fasta \
...
由于“替换此字符串...”文本使 \不是该行中的绝对最后一个字符,它会导致 shell 中断命令。然后你会得到两个命令,一个 docker run没有 --ref 的命令选项以及尝试运行 --ref=... 的样子作为单独的命令;这对应于您得到的两个错误。

关于linux - 运行 Docker 脚本时未找到文件,但在另一个 Docker 脚本中找到了文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64021321/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com