2017-02-22 20 views
5

Tôi đang cố gắng loại trừ khỏi hình ảnh Docker tất cả các tệp ẩn (bắt đầu bằng dấu chấm) từ tất cả các thư mục của dự án.Loại trừ tất cả các tệp bị ẩn bằng .dockerignore

Để loại trừ .git.gitingore: .git*

Để loại trừ tất cả .keep file: **/.keep làm việc

Đối với tất cả các file ẩn, tôi đã cố gắng: **/.*, Nhưng điều đó không bao gồm tất cả các file có chứa một dấu chấm, như **/*.* làm.

Trả lời

2

.dockerignore files cố gắng thực hiện theo các quy tắc filepath.Match của Go với việc thêm một hình cầu như ** khớp với bất kỳ thư mục nào trong đường dẫn. Vì vậy, họ không chính xác giống như mô hình glob, hoặc thậm chí cố gắng để được. Trong thực tế, Docker đã triển khai it's own parser để nó thậm chí không còn sử dụng filepath.Match nữa.

Sử dụng dir/.*dir/*/.* hoạt động như mong đợi. Nhưng dir/**/.* dường như không hoạt động mọi lúc.

Điều này specific issue should be resolved nhưng tôi nghĩ rằng tôi đã nhìn thấy hành vi tương tự trong 1.13.1 trong một số trường hợp nhất định.

Vì vậy, với .dockerignore của dir/**/.*, tệp dir/file.ext sẽ bị loại trừ nhưng dir/subdir/file.ext sẽ được bao gồm.

Đây có lẽ là giá trị mở một new issue with Docker if you have a specific reproducible case on 1.13

Các vấn đề liên quan