2016-03-21 13 views

Trả lời

4

Về cơ bản, USER là không phải có thể có trong hình ảnh chính thức. Nó mâu thuẫn với yêu cầu rằng "Người dùng bắt đầu có thể docker run official-image bash mà không cần phải tìm hiểu về --entrypoint". Nếu bạn không có root, bạn không thể chỉnh sửa các tập tin cấu hình, cài đặt các gói như strace ... hoặc đặc biệt, sửa UID theo khối lượng. Thực tế, phong cách hình ảnh chính thức được coi là (a) thực hành tốt nhất. (Vì vậy, userguide Docker nên đặt sự nhấn mạnh vào chạy daemon như không phải root và ít hơn vào USER đặc biệt)


IMO đây là một vấn đề. Các ví dụ phổ biến mà bạn có thể học hỏi từ đó không cho thấy cần phải đặt UID cố định. Nếu không, nếu bạn cập nhật bằng hình ảnh cơ sở để thêm người dùng khác, bạn sẽ phải can thiệp thủ công. Các phương pháp hay nhất nói rằng bạn nên cân nhắc đặt UID cố định, nhưng chúng thậm chí không hiển thị ví dụ về nó. Vì vậy, prominent ví dụ về simple Dockerfiles sử dụng USER không đặt UID cố định. Các hình ảnh chính thức không đặt UID cố định - giả vờ như thế này không phải là vấn đề - nhưng sau đó khối lượng dữ liệu brute-force với chown, bởi vì tập lệnh nhập cảnh của chúng chạy dưới dạng gốc. Không phải rất ấn tượng.


Về mặt kỹ thuật, các Dockerfiles chính thức có thể được cố định bằng cách thêm nhiều hơn chown và UID trao đổi với Dockerfile, nhưng điều đó dường như không mong muốn.

Tôi cho rằng phương án thay thế khác sẽ là bản cập nhật phụ thuộc vào đường dẫn. Tức là, giữ chown xung quanh cho đến khi mọi người thực hiện cập nhật tự động của họ cho UID cố định (một vài tháng?) Rồi thả nó.

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