Theo như tôi biết, không có viên đạn bạc nào ở đây, tất cả các giải pháp dưới đây đều hoạt động, nhưng yêu cầu người dùng phải được thông báo về cách lấy tài liệu.
Không có cách làm tiêu chuẩn .
Các sáng kiến thùng chứa mở đã tạo ra một hình ảnh chú thích đặc tả gợi ý rằng
- Một liên kết đến nhiều thông tin hơn về hình ảnh nên được cung cấp trong một nhãn gọi là
org.opencontainers.image.documentation
.
- Một mô tả của phần mềm được đóng gói bên trong container nên được cung cấp trong một nhãn gọi là
org.opencontainers.image.description
Theo OCI, một trong những biến thể của tùy chọn 1 dưới đây là chính xác.
Tùy chọn 1: Cung cấp một liên kết trong nhãn (Được ưu tiên bởi OCI )
Giả sử Dockerfile và các tài sản liên quan là phiên bản được kiểm soát trong kho git có thể truy cập công khai (ví dụ: trên github), kho git đó cũng có thể chứa tệp README.md. Nếu bạn có một đường ống được nối với repo xây dựng và xuất bản hình ảnh Docker vào sổ đăng ký, bạn có thể thiết lập lệnh xây dựng docker để thêm nhãn có liên kết đến tài liệu như sau
# Get the current commit id
commit=$(git rev-parse HEAD)
# Build docker image and attach a link to the Readme as a label
docker build -t myimagename:myversion \
--label "org.opencontainers.image.documentation=https://github.com/<user>/<repo>/blob/$commit/README.md"
Giải pháp này liên kết đến tài liệu cam kết cụ thể cho cam kết cụ thể đó được phiên bản cùng với Dockerfile của bạn. Tuy nhiên, nó đòi hỏi người dùng phải có quyền truy cập vào internet để có thể đọc tài liệu
Tùy chọn 1b: Cung cấp tài liệu đầy đủ trong nhãn (Được ưu tiên bởi OCI )
Một biến thể của tùy chọn 1 trong đó tài liệu đầy đủ được tuần tự hóa và đưa vào nhãn (không có giới hạn độ dài trên nhãn). Bằng cách này, tài liệu được gói cùng với hình ảnh
Như Jorge Leitao đã chỉ ra trong các bình luận, thông số kỹ thuật hình ảnh từ OCI chỉ định tên của một nhãn nhưorg.opencontainers.image.description
Tùy chọn 2: Gói tài liệu bên trong hình ảnh
Nếu bạn thực sự muốn bó tệp Readme.md bên trong hình ảnh để làm cho nó độc lập trên bất kỳ trang web bên ngoài nào, hãy xem xét những điều sau đây
Khi xây dựng, đảm bảo sao chép tệp Readme.md vào hình ảnh docker Ngoài ra, hãy tạo một tập lệnh shell đơn giản tạo ra describe
Readme.md
diễn tả
#!/usr/bin/env sh
cat /docs/Readme.md
Bổ sung Dockerfile
...
COPY Readme.md /docs/Readme.md
COPY describe /opt/bin/describe
RUN chmod +x /opt/bin/describe
ENV PATH="/opt/bin:${PATH}"
...
Một người dùng có hình ảnh Docker của bạn hiện đang chạy lệnh sau để đánh dấu được gửi đến thiết bị xuất chuẩn
docker run myimage:version describe
Giải pháp này gói tài liệu cho phiên bản cụ thể này của hình ảnh bên trong hình ảnh và nó có thể được truy xuất mà không có bất kỳ sự phụ thuộc bên ngoài nào