Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将参数传递给docker_Bash_Docker_Continuous Integration - Fatal编程技术网

Bash 将参数传递给docker

Bash 将参数传递给docker,bash,docker,continuous-integration,Bash,Docker,Continuous Integration,我想把一个论点传给docker。为此,我在docker build命令中使用build arg echo "[INFO] Hadoop version is ${HDP_VERSION}" docker build --no-cache=true --squash \ --build-arg HDP_VERSION=${HDP_VERSION} \ 这是我的码头工人 ARG HDP_VERSION FROM host:5000/runner-hadoop:${HDP_VER

我想把一个论点传给docker。为此,我在docker build命令中使用build arg

echo "[INFO] Hadoop version is ${HDP_VERSION}"
docker build --no-cache=true --squash \
--build-arg HDP_VERSION=${HDP_VERSION} \
这是我的码头工人

ARG HDP_VERSION
FROM host:5000/runner-hadoop:${HDP_VERSION}
RUN echo "HDP_VERSION="${HDP_VERSION}
COPY oozie/${HDP_VERSION} ${PATH_UNIX_PROJECT}
第一行和第二行执行时没有失败,但在那之后,我看到
HDP\u VERSION
实际上是空的。因此,在步骤4中,采用了错误的目录

这是为什么?你如何纠正它

编辑

这是回声的结果

这就是我使用的结果

--build-arg HDP_VERSION=1 \

编辑2

如果我使用ENV,就会发生这种情况。结果是一样的

ENV HDP_VERSION=${HDP_VERSION}
RUN echo "HDP_VERSION="${HDP_VERSION}

ARG
不是
ENV
ARG
正在向docker获取参数,以便docker可以看到它,
ENV
将变量导出到环境中,以便
运行时可以看到它

ARG HDP_VERSION
FROM host:5000/runner-hadoop:${HDP_VERSION}
ENV HDP_VERSION=${HDP_VERSION}
RUN echo "HDP_VERSION="${HDP_VERSION}
COPY oozie/${HDP_VERSION} ${PATH_UNIX_PROJECT}

您确定在主机上设置了变量吗?能否在docker外部显示echo$HDP_版本的内容?当你写
--build arg HDP_VERSION=1
时,你有没有同样的行为?@ase更新了我的帖子我很确定你需要在每行
之后重复
arg
;例如,见。(如果您发布
docker build
和类似命令的实际文本输出,而不是图像,这将更易于阅读和以后搜索。)@david谢谢。这起作用了,结果是一样的。我更新了我的帖子。