首页 > 解决方案 > 在 Docker 构建中运行 cURL 命令

问题描述

我正在尝试使用 cURL 命令下载 jacoco jar 并将 jar 复制/保存到此目标文件夹:dir/tmp/

这是 Dockerfile 查找上述部分的方式:

RUN rm -r dir/tmp | true
RUN mkdir dir/tmp | true
RUN echo "Downloading jacoco jars"
RUN curl "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.agent-0.8.5-runtime.jar" -o dir/tmp/jacoco.agent.jar
RUN echo "Done Downloading jacoco jars"

但我收到以下错误:

无法创建文件 dir/tmp: 没有这样的文件或目录

curl:(23)失败的写作主体(0!= 984)

我可以尝试什么来解决这个问题?

标签: curljardockerfile

解决方案


mkdir命令需要通过-p以允许创建多目录,我还进行了一些更正以使其按照您的要求工作:

RUN rm -rf dir/tmp
RUN mkdir -p dir/tmp
RUN echo "Downloading jacoco jars"
RUN curl "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.agent-0.8.5-runtime.jar" -o dir/tmp/jacoco.agent.jar
RUN echo "Done Downloading jacoco jars"

或者:

RUN rm -rf dir/tmp \
    && mkdir -p dir/tmp \
    && echo "Downloading jacoco jars" \
    && curl "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.agent-0.8.5-runtime.jar" -o dir/tmp/jacoco.agent.jar \
    && echo "Done Downloading jacoco jars"

推荐阅读