摘要:而且要注意到一般采用的是軟件的版本號(hào)作為,而不是構(gòu)建日期作為。比如你有版本,那你應(yīng)該定期從軟件倉庫中下載這三個(gè)版本的構(gòu)建物,然后對(duì)為它們構(gòu)建。對(duì)于版,你應(yīng)該將構(gòu)建的過程融入到軟件的構(gòu)建過程中。
原文
Image tag是不穩(wěn)定的Docker image的tag是不穩(wěn)定的,這句話的意思是就算tag不變,其所代表的image并非一成不變,例如openjdk:8在去年代表jdk 8u161今年則代表jdk 8u191。就算你使用openjdk:8u181也不能保證這個(gè)image是不變的,為什么這么說?
一個(gè)Docker image大致是由4部分組成的:
其依賴的基礎(chǔ)鏡像,由Dockerfile的FROM指令所指定
其所包含的軟件,在這個(gè)例子里就是 openjdk 8u181
Dockerfile的其他腳本
啟動(dòng)入口,比如docker-entrypoint.sh
就算軟件不發(fā)生變化,另外3個(gè)也是有可能發(fā)生變化的,而構(gòu)建的新image的tag依然是openjdk:8u181。而且要注意到一般采用的是軟件的版本號(hào)作為tag,而不是commit、構(gòu)建日期作為tag。如果你是Java程序員,可以類比docker image tag為maven的SNAPSHOT。
那這意味著什么?
從docker image使用方角度,每次啟動(dòng)之前都需要pull一下,確保使用了新的image
從docker image提供方角度,就算你的軟件版本已經(jīng)凍結(jié),你仍然需要定期構(gòu)建image并發(fā)布倉庫上
針對(duì)穩(wěn)定與非穩(wěn)定版本的構(gòu)建策略和Maven的版本定義一樣,你的軟件應(yīng)該分為兩種:
stable版,即一旦發(fā)布其版本號(hào)對(duì)應(yīng)的代碼不會(huì)再做修改
snapshot版,又稱nightly-build版,即該版本號(hào)對(duì)應(yīng)的代碼是不穩(wěn)定的
對(duì)于stable版,你應(yīng)該定期對(duì)其構(gòu)建image。比如你有版本1.0、1.1、1.2,那你應(yīng)該定期從軟件倉庫中下載這三個(gè)版本的構(gòu)建物,然后對(duì)為它們構(gòu)建image。以Maven舉例,定期從Maven倉庫下載它們的Jar,然后為它們構(gòu)建image。記得確保docker build添加了--pull選項(xiàng)。
對(duì)于snapshot版,你應(yīng)該將構(gòu)建image的過程融入到軟件的構(gòu)建過程中。以Maven為例,使用spotify-dockerfile-plugin,mvn clean install dockerfile:build dockerfile:push。
不論是stable版還是snapshot版,都應(yīng)該利用CI/CD工具(如Jenkins)將image構(gòu)建工作自動(dòng)化。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27688.html
摘要:年月發(fā)布了內(nèi)核對(duì)進(jìn)行了重新設(shè)計(jì)。年發(fā)布了內(nèi)核更加徹底的改造了,稱為,并且認(rèn)可其已經(jīng)穩(wěn)定。集群工具,多宿主管理運(yùn)行。通過的設(shè)置通過設(shè)置將設(shè)置上標(biāo)簽。使用兩種方式傳遞給宿主其的主機(jī)位置,環(huán)境變量和文件。 https://www.youtube.com/watch?v=heBI7oQvHZU http://v.qq.com/page/o/8/j/o03134mlm8j.html 基本介紹 D...
摘要:容器運(yùn)行時(shí),會(huì)打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執(zhí)行命令指令是用來執(zhí)行命令行命令的。 Docker 是個(gè)劃時(shí)代的開源項(xiàng)目,它徹底釋放了計(jì)算虛擬化的威力,極大提高了應(yīng)用的運(yùn)行效率,降低了云計(jì)算資源供應(yīng)的成本!使用 Docker,可以讓應(yīng)用的部署、測(cè)試和分發(fā)都變得前所未有的高效和輕松! 無論是應(yīng)用開發(fā)者、運(yùn)維人員、還是其他信息技術(shù)從...
摘要:容器運(yùn)行時(shí),會(huì)打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執(zhí)行命令指令是用來執(zhí)行命令行命令的。 Docker 是個(gè)劃時(shí)代的開源項(xiàng)目,它徹底釋放了計(jì)算虛擬化的威力,極大提高了應(yīng)用的運(yùn)行效率,降低了云計(jì)算資源供應(yīng)的成本!使用 Docker,可以讓應(yīng)用的部署、測(cè)試和分發(fā)都變得前所未有的高效和輕松! 無論是應(yīng)用開發(fā)者、運(yùn)維人員、還是其他信息技術(shù)從...
閱讀 2856·2021-10-14 09:42
閱讀 3174·2019-08-30 15:52
閱讀 3240·2019-08-30 14:02
閱讀 1102·2019-08-29 15:42
閱讀 529·2019-08-29 13:20
閱讀 1157·2019-08-29 12:24
閱讀 470·2019-08-26 10:20
閱讀 680·2019-08-23 18:31