2017-10-12 12 views
7

Xem xét Dockerfile sau:"Dòng tiếp tục trống sẽ trở thành lỗi" ... làm thế nào tôi nên nhận xét Dockerfile của tôi bây giờ?

FROM alpine:edge 

EXPOSE \ 
# web portal 
8080 \ 
# backdoor 
8081 

xây dựng như sau:

docker build . 

Chúng ta quan sát đầu ra ví dụ:

Sending build context to Docker daemon 17.1TB 
Step 1/2 : FROM alpine:edge 
---> 7463224280b0 
Step 2/2 : EXPOSE 8080 8081 
---> Using cache 
---> 7953f8df04d9 
[WARNING]: Empty continuation line found in: 
    EXPOSE 8080 8081 
[WARNING]: Empty continuation lines will become errors in a future release. 
Successfully built 7953f8df04d9 

Vì vậy, cho rằng nó sẽ sớm trở thành bất hợp pháp để đưa ý kiến ở giữa phần nhiều dòng: cách mới được đề xuất để nhận xét các lệnh nhiều dòng là gì?

Điều này đặc biệt quan trọng đối với các lệnh RUN, vì chúng tôi được khuyến khích giảm các lớp hình ảnh bằng cách && nhập lệnh cùng nhau.


Không chắc chắn chính xác khi điều này đã được giới thiệu, nhưng tôi hiện đang trải qua điều này trong phiên bản:

docker --version 
Docker version 17.07.0-ce, build 8784753 

Tôi đang sử dụng cạnh dòng phát hành Docker, vì vậy có lẽ đây sẽ chưa tìm quen thuộc nếu bạn đang sử dụng Docker ổn định.

+0

Nó có hoạt động với nhánh ổn định không? – lifeisfoo

+0

Cách tốt nhất là hỏi nhóm docker xem họ có kế hoạch gì không? Tôi giả sử bạn có thể kết thúc với nhiều phơi bày nếu bạn muốn nhận xét –

Trả lời

1

Bạn có thể ngắt các lệnh RUN để tách biệt các dòng và sau đó sử dụng lệnh thử nghiệm (tại thời điểm viết *) --squash.


* lưu ý rằng đề xuất rằng multi-stage builds có thể làm cho --squash không cần thiết. Đó là tích cực đang được thảo luận here, với một đề xuất mở here.

+0

'--squash' có lẽ có nghĩa là các lớp _all_ bị vô hiệu khi tôi thực hiện thay đổi cho lớp mới nhất. nói chung tôi đặt công cụ chậm trong lớp đầu, và các công cụ dễ bay hơi trong các lớp sau này. Tôi không muốn các bản dựng tăng dần của tôi phải tìm nạp lại các phụ thuộc mỗi lần, chỉ vì mục đích thực hiện các nhận xét. nhưng có thể các bản dựng nhiều giai đoạn cung cấp câu trả lời tốt hơn; cần phải đọc lên trên nó. – Birchlabs

5

17.07.0-ce bắt đầu cảnh báo về các dòng tiếp tục trống. Tuy nhiên, nó đã xử lý không chính xác các dòng chỉ nhận xét là trống. Điều này được sửa trong moby#35004 và được bao gồm trong số 17.10.0-ce.

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