2017-10-12 371 views
7

考慮以下Dockerfile:「空的延續線會變成錯誤」......我應該如何評論我的Dockerfile?

FROM alpine:edge 

EXPOSE \ 
# web portal 
8080 \ 
# backdoor 
8081 

內置就像這樣:

docker build . 

我們觀察到這樣的輸出:

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 

所以,因爲它很快就會成爲非法把意見在多線段中間:什麼是新的推薦方式來評論多行命令

這對於RUN命令特別重要,因爲我們鼓勵將圖像層一起減少命令。


不知道什麼時候這個被引入,但目前我遇到這樣的版本:

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

我使用的碼頭工人邊緣發佈流,所以也許這還沒有看如果您使用Docker穩定,則很熟悉。

+0

它是否支持穩定分支? – lifeisfoo

+0

最好是問問碼頭團隊他們計劃的是什麼?我假設你可能以多次曝光結束,如果你想要評論 –

回答

1

您可以將RUN命令分解成單獨的行,然後使用實驗(在編寫時*)--squash命令。


*注意,它被認爲multi-stage builds可能使--squash多餘的。目前正在積極討論here,提案開放here

+0

'--squash'可能意味着,當我對最新層進行更改時,_all_圖層會失效。通常我會在早期階段放慢速度,在晚期階段放慢速度。我不希望每次增量構建必須重新獲取依賴關係,只是爲了實現註釋。但也許多階段構建提供了更好的答案;需要閱讀它。 – Birchlabs

5

17.07.0-ce開始對空的延續線發出警告。但是,它不正確地將僅限註釋的行視爲空。這在moby#35004中被修復,並被包含在17.10.0-ce中。