如何在Docker中复制文件?

如何在Docker中复制文件?,docker,sonarqube,dockerfile,Docker,Sonarqube,Dockerfile,我有以下Dockerfile: FROM sonarqube RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar COPY sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/ 复制文件时出现以下错误: Removing interme

我有以下Dockerfile:

FROM sonarqube

RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar
COPY sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
复制文件时出现以下错误:

Removing intermediate container 63a3ae1d7390
Step 3/3 : COPY sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
lstat sonar-gitlab-plugin-4.0.0.jar: no such file or directory

在这种情况下,如何复制文件?

您正在容器内运行
wget
,但随后尝试
将它从主机复制到容器。要从一个容器位置复制到另一个位置,只需使用
cp

RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar \
 && cp sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
更好的是,只需使用
wget-O
将文件从开始保存到所需的位置

RUN wget -o /opt/sonarqube/extensions/plugins/ \
        https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar 

您试图复制位于容器中的文件,就像它是本地文件一样,因此Docker无法找到它

像这样使用ADD应该可以使其正常工作:

FROM sonarqube

ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/

它更像“dockerlike”

COPY
命令将文件从主机复制到容器。
对于要在容器内运行的任何命令,您需要
run

RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar \
   && cp sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/

替换为“添加”时出现相同错误。