在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全/ Dockerfile 多階段構(gòu)建中,如何指定一個(gè)真實(shí)的掛載路徑?

Dockerfile 多階段構(gòu)建中,如何指定一個(gè)真實(shí)的掛載路徑?

docker 難道只能在運(yùn)行時(shí)掛載一個(gè)目錄?因?yàn)槲沂褂枚嚯A段構(gòu)建(參考
http://ju.outofmemory.cn/entr...), 每次構(gòu)建的第一個(gè)階段都需要重新下載一遍依賴。

我覺得可以把母機(jī)上的一個(gè)路徑掛載到第一個(gè)階段里保存依賴的第三方庫,下次構(gòu)建或者別的項(xiàng)目構(gòu)建就會(huì)快很多了。

能不能辦到?

回答
編輯回答
哚蕾咪

大概說一下,拿我稍微熟悉的Node.js來舉例,你可能是不想在容器里創(chuàng)建node_modules這個(gè)依賴包文件夾,而是把宿主機(jī)的某個(gè)目錄給掛載過去是吧?但是在構(gòu)建的過程中,你需要下載依賴不止一次?或者是有多個(gè)依賴包文件夾?
我沒實(shí)驗(yàn)過,不過我猜想哪怕你有多個(gè)安裝包文件夾,容器運(yùn)行時(shí)可以一個(gè)個(gè)分別掛載,那么這么做應(yīng)該是可以的:

docker run -d -v /dir1:/dir1 -v /dir2:/dir2 image:version

不過理論上來說這么做不太好,畢竟鏡像的依賴包跟運(yùn)行環(huán)境牽扯太大,我是這么弄Dockerfile的:

COPY ./package.json /app
CMD npm install
COPY ./ /app
RUN npm start

我先把依賴配置文件拷貝進(jìn)鏡像里,然后安裝依賴包,再拷貝項(xiàng)目。
這樣之后只要依賴包配置文件不變化,那么在安裝依賴包這一步的鏡像層可以反復(fù)利用,構(gòu)建速度會(huì)有很大提升。

希望能幫助到你。

2017年10月23日 00:49