網(wǎng)上查了查資料,這里記錄一下。
????????今天在編寫 dockerfile 時使用 COPY 拷貝文件夾時遇到了意料之外的情況。在此記錄一下正確的使用方法。
背景說明
????????今天在通過 dockerfile 將文件夾拷貝到鏡像的時候發(fā)現(xiàn),是把文件夾下的內(nèi)容拷貝進去了。
dockerfile 如下:
1 2 3 4 5 |
FROM node:alpine WORKDIR /usr/src/app COPY dist node_modules package.json ./ EXPOSE 3000 CMD ["yarn", "start:prod"] |
????????我是想把 dist 和 node_modules 兩個文件夾都拷貝到鏡像中,又不想用多條 COPY 來分別拷貝,那樣會多一個 layer。結(jié)果發(fā)現(xiàn) dist 和 node_modules 兩個文件夾本身沒有被拷貝進鏡像,而是把文件夾下的內(nèi)容分別拷貝進的鏡像。
經(jīng)過測試發(fā)現(xiàn):
-
ADD
?命令和?COPY
?命令在復(fù)制文件時行為一致 COPY/ADD
?命令的源如果是文件夾,復(fù)制的是文件夾的內(nèi)容而不是其本身- 使用?
*
?匹配所有文件,如果遇到文件夾也會保持上述邏輯,即僅復(fù)制內(nèi)容
這個邏輯很詭異,和我們的一般預(yù)期不符。文章來源:http://www.zghlxwxcb.cn/news/detail-800736.html
我發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-800736.html
到了這里,關(guān)于Dockerfile 指令 COPY 拷貝文件夾的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!