dockerfile實(shí)例

docker build steps

  1. 編輯dockerfile文件
  • 由于本次鏡像的有些依賴自己也有依賴查刻,為了保持鏡像的精簡(jiǎn)性番宁,這里采用分步制作,所謂分步赖阻,就是把依賴在第一個(gè)鏡像內(nèi)編譯完成之后蝶押,復(fù)制給第二個(gè)鏡像,這樣第二個(gè)鏡像內(nèi)就不會(huì)有編譯工具等不需要的東西了火欧。
  • 編輯dockerfile

     # first step

     FROM python:2.7-alpine as builder  # 每個(gè)FROM就是制作一個(gè)指定的基礎(chǔ)鏡像

     

     # construct the virtualenv

     ADD requirements.txt requirements.txt  # 把項(xiàng)目需要的依賴映射到docker鏡像中

     # RUN命令是運(yùn)行指定命令棋电,就是在鏡像內(nèi)的終端執(zhí)行命令

     # sed:為直接修改文件,這里是修改了鏡像內(nèi)的源地址

     # && \ :是把多個(gè)命令放在一行執(zhí)行

     # apk: 安裝軟件 苇侵,由于有些依賴需要編譯赶盔,這里還需要下載安裝包-dev(-dev是開(kāi)發(fā)者在編輯項(xiàng)目時(shí)需要的東西,安裝-dev結(jié)尾的軟件之后會(huì)自動(dòng)把它的依賴安裝好)

     # 最后是為了安裝虛擬環(huán)境和安裝requirements的包

     RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \

         apk --no-cache add alpine-sdk libxml2-dev linux-headers libxslt-dev && \

         pip install virtualenv && \

         virtualenv /.venv && \

         /.venv/bin/pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

     

     # second step

     FROM python:2.7-alpine  # 同樣制作一個(gè)指定的基礎(chǔ)鏡像

     

     COPY --from=builder /.venv /.venv  # 把第一個(gè)鏡像的虛擬環(huán)境copy過(guò)來(lái) 

     ADD ./src /fastone-cwl  # 把項(xiàng)目映射到鏡像內(nèi)

     # sed:為直接修改文件榆浓,這里是修改了鏡像內(nèi)的源地址

     # find —— add :此步為檢測(cè)復(fù)制來(lái)的虛擬環(huán)境中的路徑于未,對(duì)比缺少哪些包,會(huì)自動(dòng)安裝對(duì)應(yīng)的包

     # 在第一步中額外安裝的包需要在add后面添加,-dev結(jié)尾的就可以舍棄了

     # ln -s: 軟連接烘浦,把cwl-runner放在bin目錄下抖坪,可直接執(zhí)行

     RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \

         find /.venv/ -name *.so | \

         xargs scanelf -n  | \

         awk 'NR>1 {print $2}' | \

         tr ',' '\n' | \

         sort | \

         uniq | grep -v libpython | \

         while read so; do echo so:$so; done | \

         xargs apk --no-cache add nodejs && \

         ln -s /fastone-cwl/cwl-runner /usr/bin

  • 由于我們用的虛擬環(huán)境,所以寫(xiě)好文件之后需要切換環(huán)境闷叉,這里要改cwl-runner中python在shell的位置


     #!/usr/bin/env python  # 修改這個(gè)

     import sys

     sys.path.append('..')

     from fastone_cwl.cwl_runner import main

     sys.exit(main(sys.argv[1:]))

     

     **************************************************************************

     **************************************************************************

     #!/.venv/bin/python

     import sys

     sys.path.append('..')

     from fastone_cwl.cwl_runner import main

     sys.exit(main(sys.argv[1:]))
  1. 執(zhí)行build命令

     docker build -t r.fastonetech.com:5000/fastone-cwl .
  • build過(guò)程中可能會(huì)出現(xiàn)錯(cuò)誤擦俐,必要時(shí)根據(jù)錯(cuò)誤log修改dockerfile
  • 這里報(bào)錯(cuò)就是少了libxml2 libxml2-dev兩個(gè)包
  • 這里少了linux-headers
  • 這里少了libxslt-dev
  • 都添加完成就成功了....
  1. 運(yùn)行image
   docker run r.fastonetech.com:5000/fastone-cwl cwl-runner
  1. 上傳鏡像

   docker push r.fastonetech.com:5000/fastone-cwl
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市握侧,隨后出現(xiàn)的幾起案子蚯瞧,更是在濱河造成了極大的恐慌,老刑警劉巖品擎,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埋合,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡萄传,警方通過(guò)查閱死者的電腦和手機(jī)饥悴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)盲再,“玉大人西设,你說(shuō)我怎么就攤上這事〈鹋螅” “怎么了贷揽?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)梦碗。 經(jīng)常有香客問(wèn)我禽绪,道長(zhǎng),這世上最難降的妖魔是什么洪规? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任印屁,我火速辦了婚禮,結(jié)果婚禮上斩例,老公的妹妹穿的比我還像新娘雄人。我一直安慰自己,他們只是感情好念赶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布础钠。 她就那樣靜靜地躺著,像睡著了一般叉谜。 火紅的嫁衣襯著肌膚如雪旗吁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天停局,我揣著相機(jī)與錄音很钓,去河邊找鬼香府。 笑死,一個(gè)胖子當(dāng)著我的面吹牛码倦,可吹牛的內(nèi)容都是我干的企孩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼叹洲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柠硕!你這毒婦竟也來(lái)了工禾?” 一聲冷哼從身側(cè)響起运提,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闻葵,沒(méi)想到半個(gè)月后民泵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡槽畔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年栈妆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厢钧。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳞尔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出早直,到底是詐尸還是另有隱情寥假,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布霞扬,位于F島的核電站糕韧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏喻圃。R本人自食惡果不足惜萤彩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斧拍。 院中可真熱鬧雀扶,春花似錦、人聲如沸肆汹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)县踢。三九已至转绷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硼啤,已是汗流浹背议经。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煞肾。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓咧织,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親籍救。 傳聞我的和親對(duì)象是個(gè)殘疾皇子习绢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355