Bash 将参数传递给docker
我想把一个论点传给docker。为此,我在docker build命令中使用build argBash 将参数传递给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
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谢谢。这起作用了,结果是一样的。我更新了我的帖子。