dockerfile,拷貝文件夾到鏡像中(不是拷貝文件夾中的內容到鏡像)


背景說明

今天在通過dockerfile將文件夾拷貝到鏡像的時候發現,是把文件夾下的內容拷貝進去了

dockerfile如下

from xxxxx:81/xxxxxx/datafusion:20201208184148
run rm -rf /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/static
copy static /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/

注意:構建完鏡像,運行之后發現是把本地static目錄下的內容拷貝到classes目錄下了,本意是要將static拷貝到classes下成為classes/static
docker運行結果如下:

[091a0c9e4523 root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]# ls -ltr
total 24
drwxr-xr-x 3 root root   36 Dec  8 18:41 templates
-rw-r--r-- 1 root root 2710 Dec  8 18:41 sdk.properties
drwxr-xr-x 2 root root   34 Dec  8 18:41 properties
-rw-r--r-- 1 root root  179 Dec  8 18:41 oss.properties
-rw-r--r-- 1 root root 2888 Dec  8 18:41 logback-spring.xml
-rw-r--r-- 1 root root  200 Dec  8 18:41 intellit.properties
drwxr-xr-x 2 root root   96 Dec  8 18:41 i18n
drwxr-xr-x 2 root root   24 Dec  8 18:41 db
drwxr-xr-x 4 root root  223 Dec  8 18:41 config
drwxr-xr-x 3 root root   20 Dec  8 18:41 com
-rw-r--r-- 1 root root 1501 Dec  8 18:41 banner.txt
-rw-r--r-- 1 root root  465 Dec  8 18:41 application.properties
drwxr-xr-x 2 root root   48 Dec  8 18:41 META-INF
drwxr-xr-x 5 root root   59 Dec  9 09:02 datafusion
[091a0c9e4523 root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]#   #並沒有把static目錄拷貝進來

實現方法

copy時指定鏡像中的目錄

dockerfile修改如下

from xxxxx:81/xxxxxx/datafusion:20201208184148
run rm -rf /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/static
copy static /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/static    #加上鏡像內的static目錄,雖然鏡像中的目錄已經被刪除

構建,運行新的鏡像

[ec5dbacdec93 root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]# ls -ltr
total 24
drwxr-xr-x 3 root root   36 Dec  8 18:41 templates
-rw-r--r-- 1 root root 2710 Dec  8 18:41 sdk.properties
drwxr-xr-x 2 root root   34 Dec  8 18:41 properties
-rw-r--r-- 1 root root  179 Dec  8 18:41 oss.properties
-rw-r--r-- 1 root root 2888 Dec  8 18:41 logback-spring.xml
-rw-r--r-- 1 root root  200 Dec  8 18:41 intellit.properties
drwxr-xr-x 2 root root   96 Dec  8 18:41 i18n
drwxr-xr-x 2 root root   24 Dec  8 18:41 db
drwxr-xr-x 4 root root  223 Dec  8 18:41 config
drwxr-xr-x 3 root root   20 Dec  8 18:41 com
-rw-r--r-- 1 root root 1501 Dec  8 18:41 banner.txt
-rw-r--r-- 1 root root  465 Dec  8 18:41 application.properties
drwxr-xr-x 2 root root   48 Dec  8 18:41 META-INF
drwxr-xr-x 3 root root   24 Dec  9 13:00 static        #已經成功把static目錄拷貝進來了,進入到鏡像中也是static這個目錄,而不是把目錄中的內容拷貝進來
[ec5dbacdec93 root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]#

通過add命令,指定鏡像中的目錄

dockerfile如下

from 172.20.59.71:81/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/datafusion:20201208184148
run rm -rf /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/static
add static /usr/local/tomcat/webapps/datafusion/WEB-INF/classes/static

運行結果:

[fb235c3c32af root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]# ls -ltr
total 24
drwxr-xr-x 3 root root   36 Dec  8 18:41 templates
-rw-r--r-- 1 root root 2710 Dec  8 18:41 sdk.properties
drwxr-xr-x 2 root root   34 Dec  8 18:41 properties
-rw-r--r-- 1 root root  179 Dec  8 18:41 oss.properties
-rw-r--r-- 1 root root 2888 Dec  8 18:41 logback-spring.xml
-rw-r--r-- 1 root root  200 Dec  8 18:41 intellit.properties
drwxr-xr-x 2 root root   96 Dec  8 18:41 i18n
drwxr-xr-x 2 root root   24 Dec  8 18:41 db
drwxr-xr-x 4 root root  223 Dec  8 18:41 config
drwxr-xr-x 3 root root   20 Dec  8 18:41 com
-rw-r--r-- 1 root root 1501 Dec  8 18:41 banner.txt
-rw-r--r-- 1 root root  465 Dec  8 18:41 application.properties
drwxr-xr-x 2 root root   48 Dec  8 18:41 META-INF
drwxr-xr-x 3 root root   24 Dec  9 13:03 static  #static目錄已經被拷貝進來了。
[fb235c3c32af root:/usr/local/tomcat/webapps/datafusion/WEB-INF/classes]# 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM