1. 程式人生 > 實用技巧 >dockerfile,拷貝資料夾到映象中(不是拷貝檔案中的內容到映象)

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]#