Tôi không chắc về cách đặt tên Dockerfiles. Nhiều người trên GitHub sử dụng Dockerfile
mà không có phần mở rộng tập tin. Tôi có cho họ một cái tên và phần mở rộng không; nếu vậy thì sao Hay tôi chỉ gọi cho họ Dockerfile
?
Tôi không chắc về cách đặt tên Dockerfiles. Nhiều người trên GitHub sử dụng Dockerfile
mà không có phần mở rộng tập tin. Tôi có cho họ một cái tên và phần mở rộng không; nếu vậy thì sao Hay tôi chỉ gọi cho họ Dockerfile
?
Câu trả lời:
Đừng thay đổi tên của dockerfile nếu bạn muốn sử dụng autobuilder tại hub.docker.com. Không sử dụng tiện ích mở rộng cho các tệp docker, để trống. Tên tệp chỉ nên là: (không có phần mở rộng nào cả)
Dockerfile
tuy nhiên, bạn cũng có thể làm như dưới đây ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
, Vv
Trên VS Code bạn có thể sử dụng <purpose>.Dockerfile
và nó hoạt động tương ứng.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
, Vv
Trên VS Code tôi sử dụng <purpose>.Dockerfile
và nó được nhận dạng chính xác.
Tôi nghĩ bạn nên có một thư mục trên mỗi container có Dockerfile (không có phần mở rộng) trong đó. Ví dụ:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Khi bạn xây dựng chỉ cần sử dụng tên thư mục, Docker sẽ tìm Dockerfile. ví dụ:
docker build -f ./db .
Nếu bạn muốn sử dụng autobuilder tại hub.docker.com, thì nó phải như vậy Dockerfile
. Vậy đó :)
Có vẻ như điều này là đúng nhưng, cá nhân tôi, dường như là thiết kế kém. Chắc chắn, có một tên mặc định (có phần mở rộng) nhưng cho phép các tên khác và có cách chỉ định tên của tệp docker cho các lệnh.
Có một tiện ích mở rộng cũng rất tốt vì nó cho phép người ta liên kết các ứng dụng với loại tiện ích mở rộng đó. Khi tôi nhấp vào Dockerfile trong MacOSX, nó coi nó như một tệp thực thi Unix và cố gắng chạy nó.
Nếu các tệp Docker có phần mở rộng, tôi có thể yêu cầu HĐH khởi động chúng bằng một ứng dụng cụ thể, ví dụ: ứng dụng soạn thảo văn bản của tôi. Tôi không chắc nhưng hành vi hiện tại cũng có thể liên quan đến sự cho phép của tập tin.
Tôi đã tạo hai Dockerfiles trong cùng một thư mục,
# vi one.Dockerfile
# vi two.Dockerfile
để xây dựng cả Dockerfiles sử dụng,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Lưu ý: bạn nên có trong thư mục làm việc hiện tại ..
Tôi có cho họ một cái tên và phần mở rộng không; nếu vậy thì sao
Bạn có thể đặt tên cho Dockerfiles của bạn theo cách bạn muốn. Tên tệp mặc định là Dockerfile
(không có phần mở rộng) và sử dụng mặc định có thể giúp các tác vụ khác nhau dễ dàng hơn trong khi làm việc với các thùng chứa.
Tùy thuộc vào yêu cầu cụ thể của bạn, bạn có thể muốn thay đổi tên tệp. Ví dụ: nếu bạn đang xây dựng cho nhiều kiến trúc, bạn có thể muốn thêm một phần mở rộng chỉ ra kiến trúc như nhóm resin.io đã thực hiện cho bộ chứa HAProxy ví dụ ARM đa container của họ :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
Trong ví dụ được cung cấp, mỗi Dockerfile xây dựng từ một hình ảnh ngược dòng, cụ thể về kiến trúc, khác nhau. Dockerfile cụ thể để sử dụng cho bản dựng có thể được chỉ định bằng cách sử dụng --file, -f
tùy chọn khi xây dựng vùng chứa của bạn bằng dòng lệnh.
Dockerfile
là tốt nếu bạn chỉ có một tập tin docker (mỗi thư mục). Bạn có thể sử dụng bất kỳ tiêu chuẩn nào bạn muốn nếu bạn cần nhiều tệp docker trong cùng một thư mục - nếu bạn có lý do chính đáng. Trong một dự án gần đây có các tệp docker AWS và các tệp môi trường dev cục bộ vì các môi trường khác nhau đủ:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
bên cạnh a Dockerfile.i386
.