[英]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-requirements和write-effective-docker-files-with-python
另一種選擇是在 Dockerfile 中添加 git 客戶端並在創建容器期間拉取代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.