Thật vậy, ADD go /usr/local/
sẽ thêm nội dung của go
thư mục chứ không phải chính thư mục, bạn có thể sử dụng giải pháp Thomasleveil hoặc nếu điều đó không hiệu quả vì một số lý do bạn có thể thay đổi WORKDIR
để /usr/local/
sau đó thêm thư mục của mình vào đó như sau:
WORKDIR /usr/local/
COPY go go/
hoặc là
WORKDIR /usr/local/go
COPY go ./
Nhưng nếu bạn muốn thêm nhiều thư mục, sẽ rất khó chịu khi thêm chúng như vậy, giải pháp duy nhất hiện tại khi tôi thấy vấn đề hiện tại của mình là sử dụng COPY . .
và loại trừ tất cả các thư mục và tệp không mong muốn .dockerignore
, giả sử tôi có thư mục và tệp :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
và tôi muốn thêm src assets package.json justforfun go
như vậy:
trong Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
trong tệp .dockerignore:
node_modules
headache.lock
tmp
dist
Hoặc để vui hơn (hoặc bạn muốn nhầm lẫn nhiều người hơn cũng khiến họ đau khổ: P) có thể là:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
Theo cách này, bạn bỏ qua mọi thứ, nhưng loại trừ những gì bạn muốn được sao chép hoặc chỉ thêm vào từ "danh sách bỏ qua".
Đó là một câu trả lời muộn nhưng thêm nhiều cách để làm điều tương tự bao gồm nhiều trường hợp hơn.
ADD
lớp cho mỗi thư mục nguồn) không?