gitlab-ci中pip緩存的配置

最近給實驗室的Gitlab服務器開啟了CI功能玄渗,采用的是docker模式鳖目,每次都啟動一個全新的鏡像進行構建笨鸡。

為了對Python代碼進行風格檢查姜钳,每次在構建的時候,都需要先在啟動的容器中使用pip安裝flake8形耗。由于每次構建之間的環(huán)境相互隔離哥桥,所以pip的緩存也就完全沒有作用,每次都需要直接聯(lián)網(wǎng)下載相關的包來安裝激涤。
國內(nèi)的網(wǎng)絡大家都懂拟糕,下載新包的速度時好時壞,嚴重影響了構建的速度。在配置CI的時候,正好看到了有cache的選項翠订,遂決定啟用cache,不必每次都從網(wǎng)絡下載累澡。

首先根據(jù)網(wǎng)上查閱的資料梦抢,在.gitlab-ci.yml中配置如下:

image: python:3.6
cache:
  paths:
    - pip-cache
  key: $CI_PROJECT_ID
# This is a basic example for a gem or script which doesn't use
# services such as redis or postgres
before_script:
  - python -V # Print out python version for debugging
  - export PIP_CACHE_DIR="pip-cache"
  - mkdir -p pip-cache
  - ls pip-cache
  - pip install flake8
lint:
  script:
  - flake8 .

其中重點是cache部分般贼,該部分paths指定了要緩存的目錄,key指定了緩存的key(即只有key匹配時奥吩,才會啟用緩存)哼蛆。

在這里,我使用了當前目錄下的pip-cache目錄作為pip的緩存目錄霞赫,項目id作為key腮介,也就是本項目的所有構建都會共享這個目錄。

另一個重點是export PIP_CACHE_DIR="pip-cache"這條命令端衰。這條命令設置了一個PIP_CACHE_DIR的環(huán)境變量叠洗,pip會根據(jù)這個環(huán)境變量甘改,將緩存放在我們指定的pip-cache目錄下。

配置完成后灭抑,啟動pipeline運行十艾,發(fā)現(xiàn)還是每次都會從網(wǎng)絡上下載Python的包。

經(jīng)過多次搜索后發(fā)現(xiàn)腾节,還需要對gitlab-ci-multi-runner進行配置忘嫉。

我是根據(jù)系統(tǒng)幫助,直接在Ubuntu倉庫里安裝的案腺,因此配置文件在/etc/gitlab-runner/config.toml當中庆冕。

打開該文件,可以看到[runners.docker]部分中的volumes = ["/cache"]這一條配置劈榨。根據(jù)我們對docker的了解访递,如果要進行持久化,需要將外部的一個目錄掛載到容器內(nèi)部鞋既,但是這里明顯沒有指定外部的目錄力九。

修改這一行為:

volumes = ["/root/build_cache:/cache:rw"]

也就是把外部的/root/build_cache目錄掛載到容器中的/cache目錄中,并且給予讀寫權限邑闺。這樣gitlab-runner每次創(chuàng)建緩存的時候跌前,都會在/cache中(默認配置,可以按照官網(wǎng)文檔修改)陡舅,也就是存到了宿主機的/root/build_cache目錄中抵乓。當啟動一個新的容器的時候,也會從宿主機的/root/build_cache中加載緩存文件靶衍。

最后灾炭,重新啟動pipeline,發(fā)現(xiàn)pip已經(jīng)可以成功使用緩存安裝需要的包了颅眶。


感謝您的閱讀蜈出!
本賬號已經(jīng)不再更新,更多文章請移步我的個人博客https://www.zacharyjia.me

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涛酗,一起剝皮案震驚了整個濱河市铡原,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌商叹,老刑警劉巖燕刻,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剖笙,居然都是意外死亡卵洗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門弥咪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來过蹂,“玉大人十绑,你說我怎么就攤上這事】嵘祝” “怎么了孽惰?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸥印。 經(jīng)常有香客問我勋功,道長,這世上最難降的妖魔是什么库说? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任狂鞋,我火速辦了婚禮,結(jié)果婚禮上潜的,老公的妹妹穿的比我還像新娘骚揍。我一直安慰自己,他們只是感情好啰挪,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布信不。 她就那樣靜靜地躺著,像睡著了一般亡呵。 火紅的嫁衣襯著肌膚如雪抽活。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天锰什,我揣著相機與錄音下硕,去河邊找鬼。 笑死汁胆,一個胖子當著我的面吹牛梭姓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫩码,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼誉尖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铸题?” 一聲冷哼從身側(cè)響起铡恕,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎回挽,沒想到半個月后没咙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猩谊,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡千劈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牌捷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墙牌。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡涡驮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喜滨,到底是詐尸還是另有隱情捉捅,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布虽风,位于F島的核電站棒口,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辜膝。R本人自食惡果不足惜无牵,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厂抖。 院中可真熱鬧茎毁,春花似錦、人聲如沸忱辅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墙懂。三九已至橡卤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間损搬,已是汗流浹背蒜魄。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留场躯,地道東北人谈为。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像踢关,于是被迫代替她去往敵國和親伞鲫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理签舞,服務發(fā)現(xiàn)秕脓,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 一儒搭、持續(xù)集成(Continuous Integration) 要了解GitLab-CI與GitLab Runner...
    tsyeyuanfeng閱讀 97,877評論 18 134
  • 這是阿里內(nèi)網(wǎng)的一篇文章吠架,感有用,故轉(zhuǎn)載來了搂鲫,自己實際搭建了傍药,故記錄一下: 背景在日常工作中,我們往往會搭建基于je...
    新強吖閱讀 5,942評論 0 4
  • A 大雪堵住了城市的嘴巴,夜寂靜異常拐辽! 林嘉站在窗前拣挪,看著屋外一片片雪花在路燈的照耀下飛舞,思緒也不禁隨之飄飛俱诸。憂...
    若有人問起閱讀 852評論 0 3
  • 變量值 新手程序員往往只關注自己的程序要做些什么菠劝,而成熟的程序員則是在想如何為程序設計一個合適的數(shù)據(jù)模型。****...
    可以沒名字嗎閱讀 1,344評論 5 3