如何复制 Docker 中的文件?
How to copy file in Docker?
我有以下 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
在容器内,但随后试图 COPY
它从 host 机器到容器。要从一个容器位置复制到另一个容器位置,只需使用 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/
我有以下 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
在容器内,但随后试图 COPY
它从 host 机器到容器。要从一个容器位置复制到另一个容器位置,只需使用 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/