簡體   English   中英

我不能在 Dockerfile 中執行 RUN cp

[英]I cannot do RUN cp in Dockerfile

我為 tomcat 容器編寫了如下所示的 Dockerfile。

FROM tomcat:9.0

#exec command
RUN    apt-get update               \
    && apt-get install -y wget      \
    && apt-get install -y vim       \
    && apt-get clean                \
    && rm -rf /var/lib/apt/lists/*

#copy folder : not working
RUN cp -pR /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps

#run tomcat
CMD ["catalina.sh","run"]

但是“RUN cp **”不起作用。

其實我是在tomcat容器里做這個命令的,所以這個cp命令是正確運行的。 像那樣。

$ docker exec -it cn-tomcat /bin/bash

  root@host_tomcat:/usr/local/tomcat#cp -pR /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps

這是 tomcat 容器中的文件夾。

root@host_tomcat:/usr/local/tomcat# ls -la
total 128
drwxr-xr-x 1 root root    41 Nov 12 01:49 .
drwxr-xr-x 1 root root    20 Oct 22 00:16 ..
-rw-r--r-- 1 root root 18970 Sep 28 13:51 BUILDING.txt
-rw-r--r-- 1 root root  6210 Sep 28 13:51 CONTRIBUTING.md
-rw-r--r-- 1 root root 57092 Sep 28 13:51 LICENSE
-rw-r--r-- 1 root root  2333 Sep 28 13:51 NOTICE
-rw-r--r-- 1 root root  3372 Sep 28 13:51 README.md
-rw-r--r-- 1 root root  6898 Sep 28 13:51 RELEASE-NOTES
-rw-r--r-- 1 root root 16507 Sep 28 13:51 RUNNING.txt
drwxr-xr-x 2 root root  4096 Oct 22 00:33 bin
drwxr-xr-x 3 1000 1000   254 Nov 12 01:49 conf
drwxr-xr-x 2 root root  4096 Oct 22 00:33 lib
drwxrwxr-x 2 1000 1000     6 Nov 12 01:46 log
drwxrwxrwx 1 root root   177 Nov 12 01:49 logs
drwxr-xr-x 2 root root   159 Oct 22 00:33 native-jni-lib
drwxrwxrwx 2 root root    30 Oct 22 00:33 temp
drwxrwxr-x 3 1000 1000    20 Nov 12 01:59 webapps
drwxr-xr-x 7 root root    81 Sep 28 13:51 webapps.dist
drwxrwxrwx 1 root root    22 Nov 12 01:49 work
root@host_tomcat:/usr/local/tomcat#

問題是什么?

-- 添加結果。 ——

“docker compose build”沒問題。

[ec2-user@ip-***-***-***-*** pj_tomcat]$ docker compose build
[+] Building 1.6s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 753B                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => => transferring context: 2B                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/tomcat:9.0                                                                          1.5s
 => [1/3] FROM docker.io/library/tomcat:9.0@sha256:****************************************************************                    0.0s
 => => resolve docker.io/library/tomcat:9.0@sha256:****************************************************************                    0.0s
 => CACHED [2/3] RUN    apt-get update                   && apt-get install -y wget          && apt-get install -y vim           && a  0.0s
 => CACHED [3/3] RUN cp -pR /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps                                                 0.0s
 => exporting to image                                                                                                                 0.0s
 => => exporting layers                                                                                                                0.0s
 => => writing image sha256:****************************************************************                                           0.0s
 => => naming to docker.io/library/pj_tomcat

webapps.dist 中不為空。

root@host_tomcat:/usr/local/tomcat# pwd
/usr/local/tomcat
root@host_tomcat:/usr/local/tomcat/webapps.dist# ls -la
total 4
drwxr-xr-x  7 root root   81 Sep 28 13:51 .
drwxr-xr-x  1 root root   29 Nov 12 03:59 ..
drwxr-xr-x  3 root root  223 Oct 22 00:33 ROOT
drwxr-xr-x 15 root root 4096 Oct 22 00:33 docs
drwxr-xr-x  7 root root   99 Oct 22 00:33 examples
drwxr-xr-x  6 root root   79 Oct 22 00:33 host-manager
drwxr-xr-x  6 root root  114 Oct 22 00:33 manager

在 webapps 中它是空的。 所以它沒有被復制。

root@host_tomcat:/usr/local/tomcat/webapps# pwd
/usr/local/tomcat/webapps
root@host_tomcat:/usr/local/tomcat/webapps# ls -la
total 0
drwxrwxr-x 2 1000 1000  6 Nov 12 03:58 .
drwxr-xr-x 1 root root 29 Nov 12 03:59 ..

dockerfile 中沒有cp -pr

選項1:

RUN cp /usr/local/tomcat/webapps.dist /usr/local/tomcat/webapps

在 dockerfile 中: cp命令的行為類似於 Unix 的 `cp -a 命令,其中目錄被遞歸復制,並盡可能保留權限。

選項 2:

ADD hom* /mydir/

選項 3:

COPY <SRC> <DEST>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM