簡體   English   中英

用於作業的自定義 Gitlab CI docker 映像

[英]Custom Gitlab CI docker image for job

我在 Django 中有應用程序。 需求由許多庫組成。 在 Gitlab CI 的 linting 階段之后,我想運行一些我編寫的測試。 為了能夠運行 Postgres 和 Django,我必須安裝要求,這需要一些時間。

是否有一些簡單的方法可以緩存具有所有已安裝要求的圖像,或者每次我想運行該測試時都必須重新安裝它? 在我看來這是不切實際的。

我可以在測試之前找到工作,我將根據上次構建的需求和圖像構建自定義圖像,作為緩存圖像。 我可以將自定義圖像保存在個人注冊表中,並在下一份工作中使用它進行測試。

linting --> build_job_image --> 測試 --> 暫存 --> 生產

看起來比每次都安裝它更好,但仍然不是最好的主意。

我是 DevOps 的新手,所以我試圖找到最好的方法,不知道什么是最佳實踐。

我正在使用python:3.7-alpine圖像來完成這項工作。

我用 gitlab cache解決了這個問題:

  1. 指定應該緩存的目錄(帶有 python 包的目錄)。
  2. 作業將嘗試拉緩存(它基本上只是 zip 文件)並解壓縮它。
  3. 安裝requirements.txt 中的所有必要包(如果您不向requirements.txt 添加更多新包,則所有內容都已在緩存中)。
  4. 在作業結束時,作業將壓縮緩存目錄並推送它。

在下一次運行期間,一切都會快得多,因為已經安裝了更多的需求包。

Zeitounator提到的第二個選項也是一種方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM