簡體   English   中英

為 CI 預先安裝了依賴項的 Docker 鏡像

[英]Docker image with dependencies pre-installed for CI

執行 CI 的常見建議( 示例)是使用具有預安裝依賴項的映像。 不幸的是,對於像我這樣的 n00b,有問題的鏈接沒有進一步詳細說明。

當我尋找 docker 教程時,它似乎通常會教你如何容器化應用程序,而不是像 Python 那樣帶有一些預安裝的依賴項。

例如,如果這是我的.gitlab-ci.yml文件的樣子:

image: "python:3.7"

before_script:
  - python --version
  - pip install -r requirements.txt

stages:
  - Static Analysis

flake8:
  stage: Static Analysis
  script:
  - flake8 --max-line-length=120

如何使用一些預安裝的依賴項(這里是requirements.txt依賴項)來容器化 Python,以及我應該如何更改.gitlab-ci.yml文件,以便 CI 進程運行得更快?

為了讓它更快,我將建議基於python:3.7創建自定義 Dockerfile,它在構建過程中安裝了所有依賴項。 因此,這將節省您的時間,並且您的工作不需要在每個工作構建期間安裝依賴項。

FROM python:3.7
RUN  python --version

# Create app directory
WORKDIR /app

# copy requirements.txt
COPY local-src/requirements.txt ./


# Install app dependencies
RUN pip install -r requirements.txt

# Bundle app source
COPY src /app

您可以閱讀有關此實踐的更多信息docker-python-pip-requirementswrite-effective-docker-files-with-python

另一種選擇是在 Dockerfile 中添加 git 客戶端並在創建容器期間拉取代碼

暫無
暫無

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

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