我想將文件系統中的白名單文件夾複製到目標容器中。Docker COPY行爲不一致
基本上我想執行「複雜」操作cp -r app vendor target
,其中target
是一個Docker容器。
我有簡單的碼頭工人文件:
FROM alpine
COPY app/* /www/
COPY vendor /www/
不知什麼原因的第一個命令不復制app
目錄本身。看起來Docker並沒有區分app
和app/
之間的區別,這是相當令人惱火的。
出於測試目的,我創建了以下結構:
.
├── app
│ ├── foo
│ └── second
│ └── barf
├── Dockerfile
└── vendor
└── bar
docker build -t test . && docker run -it test ash
:
結果?不保存目錄結構,不復制父目錄。
/www/
├── bar
├── barf
└── foo
docker info
:
Server Version: 1.12.1
Storage Driver: overlay2
Backing Filesystem: extfs
任何人都可以解釋我爲什麼泊塢窗的COPY . /target
和COPY app/* /target
行爲不同?動機是什麼?爲什麼Docker不使用UNIX cp
命令的標準語義?
好的,但爲什麼'vendor'目錄被創建呢? – Tombart
你可以從「./app」目錄中列出本地機器上的所有目錄嗎?我很確定你在「./app」 –
裏有「vendor」目錄。這就是我原先想的。不,它不在那裏。當目標'/ app/vendor'已經存在於容器中時,docker可能會有不同的行爲? – Tombart