如何在dockerfile中使用cp命令

Ish*_*war 1 docker dockerfile

我想减少 Dockerfile 中使用的层数。所以我想将COPY命令组合在一个RUN cp.

  • 依赖关系
    • 文件夹1
    • 文件1
    • 文件2
  • Dockerfile

RUN cp我想使用单个命令组合以下命令

COPY ./dependencies/file1 /root/.m2

COPY ./dependencies/file2 /root/.sbt/

COPY ./dependencies/folder1 /root/.ivy2/cache
Run Code Online (Sandbox Code Playgroud)

以下命令显示“不存在此类文件或目录”错误。我哪里可能出错了?

RUN cp ./dependencies/file1 /root/.m2 && \
    cp ./dependencies/file2 /root/.sbt/ && \
    cp ./dependencies/folder1 /root/.ivy2/cache
Run Code Online (Sandbox Code Playgroud)

Han*_*ian 5

你不能那样做。

COPY从主机复制到映像。

RUN cp从图像中的一个位置复制到图像中的另一个位置。

要将其全部放入单个 COPY 语句中,您可以在主机上创建所需的文件结构,然后使用tar它使其成为单个文件。然后,当您COPYADD该 tar 文件时,Docker 会将其解压并将文件放在正确的位置。但根据文件在主机上的当前结构,不可能通过单个 COPY 命令来完成。