【DevOps】第二步:Docker鏡像打包上傳至倉(cāng)庫(kù)

鏡像倉(cāng)庫(kù)

鏡像倉(cāng)庫(kù)有好些地方可以存再榄,大部分的公有云均提供免費(fèi)的鏡像倉(cāng)庫(kù)佑附,常見(jiàn)如下:

打包上傳shell腳本

統(tǒng)一打包流程,每個(gè)項(xiàng)目中添加make.sh腳本文件畸裳,一個(gè)典型的make文件如下:

#!/bin/sh
echo "開(kāi)始制作鏡像..."
image_tag=`date +%Y%m%d` #_%H%M
echo "當(dāng)前時(shí)間:$image_tag"
docker build -t ccr.ccs.xxx.com/abc/api:v${image_tag} .
echo "制作鏡像成功!"
 
echo "登錄"
docker login
echo "鏡像版本提交"
docker push ccr.ccs.xxx.com/abc/api:v${image_tag}
 
echo "鏡像最新版本提交"
docker tag ccr.ccs.xxx.com/abc/api:v${image_tag} ccr.ccs.xxx.com/abc/api:latest
docker push ccr.ccs.xxx.com/abc/api:latest

注:Dockerfile和make.sh在同一目錄下仿吞。

docker build 命令用法

docker build [OPTIONS] PATH | URL | -
  • 命令參數(shù)
命令, 縮寫(xiě) 描述
--add-host 增加自定義主機(jī)和IP映射(host:ip)
--build-arg 設(shè)置構(gòu)建時(shí)的變量
--cache-from 用于緩存資源的鏡像
--cgroup-parent 可選的容器上層cgroup
--compress 使用gzip 壓縮構(gòu)建context
--cpu-period 限制CPU CFS(完全公平調(diào)度程序)周期
--cpu-quota 限制CPU CFS(完全公平調(diào)度程序)配額
--cpu-shares , -c CPU共享(相對(duì)權(quán)重)
--cpuset-cpus 允許執(zhí)行的CPU (0-3, 0,1)
--cpuset-mems 允許使用的內(nèi)存 (0-3, 0,1)
--disable-content-trust true 忽略鏡像驗(yàn)證
--file , -f Dockerfile名稱(chēng) (默認(rèn) ‘PATH/Dockerfile’)
--force-rm 始終移除中間容器
--iidfile 鏡像ID寫(xiě)入文件
--isolation 容器隔離技術(shù)
--label 設(shè)置鏡像metadata信息
--memory , -m 內(nèi)存限制
--memory-swap 交換限制等于內(nèi)存加交換滑频,“-1”:?jiǎn)⒂脽o(wú)限制交換
--network 在生成期為RUN指令設(shè)置網(wǎng)絡(luò)模式 (API 1.25+)
--no-cache 不使用緩存
--output , -o 輸出(格式:type=local,dest=path) (API 1.40+)
--platform 如果支持多平臺(tái),則設(shè)置 (experimental (daemon)API 1.32+)
--progress 默認(rèn)auto唤冈,設(shè)置進(jìn)度輸出類(lèi)型 (auto, plain, tty).
--pull 總是嘗試?yán)∽钚碌溺R像版本
--quiet , -q 不輸出構(gòu)建過(guò)程峡迷,成功時(shí)直接打印鏡像ID
--rm 默認(rèn)true,構(gòu)建成功后刪除中間容器
--secret API 1.39+ Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret
--security-opt Security options
--shm-size Size of /dev/shm
--squash experimental (daemon)API 1.25+ Squash newly built layers into a single new layer
--ssh SSH agent socket or keys to expose to the build (only if BuildKit enabled)
--stream (experimental (daemon)API 1.31+ ) Stream attaches to server to negotiate build context
--tag , -t 鏡像名和tag,格式為‘name:tag’
--target Set the target build stage to build.
--ulimit Ulimit 選項(xiàng)

參考已有的范例绘搞,Dockerfile和shell腳本只需要簡(jiǎn)單熟悉一下即可編寫(xiě)彤避。
這一步很關(guān)鍵,是自動(dòng)打包的根本夯辖。make.sh腳本靈活琉预,可執(zhí)行配置文件的替換,多鏡像版本的生成等自定義操作蒿褂。相比自動(dòng)化構(gòu)建平臺(tái)基于Dockerfile和git commit來(lái)構(gòu)建更具靈活性圆米。

jenkins job配置

源碼管理

jenkins會(huì)將git項(xiàng)目拷貝至job目錄下。


image

構(gòu)建觸發(fā)器

jenkins定時(shí)檢測(cè)代碼變動(dòng)(這里是每分鐘檢測(cè)一次)啄栓,如果發(fā)現(xiàn)有代碼提交記錄娄帖,則觸發(fā)下一步的構(gòu)建。


image

構(gòu)建

構(gòu)建包括2部分:

  • SSH site: SSH的主機(jī)地址
  • Command: 在主機(jī)上執(zhí)行的命令


    image

構(gòu)建日志

image

打包流程

  1. 提交代碼

  2. jenkins每分鐘檢測(cè)git倉(cāng)庫(kù)分支的代碼變動(dòng)

  3. 若有代碼提交記錄谴供,觸發(fā)下一步構(gòu)建

  4. 構(gòu)建過(guò)程調(diào)用項(xiàng)目的make.sh文件块茁,執(zhí)行鏡像打包上傳

image

參考

https://docs.docker.com/engine/reference/commandline/build/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桂肌,隨后出現(xiàn)的幾起案子数焊,更是在濱河造成了極大的恐慌,老刑警劉巖崎场,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佩耳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谭跨,警方通過(guò)查閱死者的電腦和手機(jī)干厚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)螃宙,“玉大人蛮瞄,你說(shuō)我怎么就攤上這事∽辉” “怎么了挂捅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)堂湖。 經(jīng)常有香客問(wèn)我闲先,道長(zhǎng),這世上最難降的妖魔是什么无蜂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任伺糠,我火速辦了婚禮,結(jié)果婚禮上斥季,老公的妹妹穿的比我還像新娘训桶。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布舵揭。 她就那樣靜靜地躺著慰照,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琉朽。 梳的紋絲不亂的頭發(fā)上毒租,一...
    開(kāi)封第一講書(shū)人閱讀 52,821評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音箱叁,去河邊找鬼墅垮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛耕漱,可吹牛的內(nèi)容都是我干的算色。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼螟够,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼灾梦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起妓笙,我...
    開(kāi)封第一講書(shū)人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤若河,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后寞宫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萧福,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年辈赋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鲫忍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钥屈,死狀恐怖悟民,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情篷就,我是刑警寧澤射亏,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站腻脏,受9級(jí)特大地震影響鸦泳,放射性物質(zhì)發(fā)生泄漏银锻。R本人自食惡果不足惜永品,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望击纬。 院中可真熱鬧鼎姐,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至献宫,卻和暖如春钥平,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姊途。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工涉瘾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捷兰。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓立叛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親贡茅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秘蛇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容