首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gitlab CI如何在构建码头映像之前运行测试

Gitlab CI如何在构建码头映像之前运行测试
EN

Stack Overflow用户
提问于 2018-11-07 21:32:31
回答 1查看 2.5K关注 0票数 3

我有一个基于Python的存储库,我正在尝试设置Gitlab CI来使用Dockerfile构建一个Docker映像,并将映像推送到Gitlab的注册表中。

在构建Docker映像并将其部署到注册表之前,我希望使用Python运行单元测试。下面是我当前的gitlab-ci.yml文件,它只进行测试:

代码语言:javascript
运行
复制
image: python:3.7-slim
before_script:
  - pip3 install -r requirements.txt

test:
  variables:
    DJANGO_SECRET_KEY: some-key-here
  script:
  - python manage.py test

build:
  DO NOT KNOW HOW TO DO IT

我正在检查Gitlab网站上的一些模板,并为Docker找到了一个模板:

代码语言:javascript
运行
复制
# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest

services:
  - docker:dind

before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY

build-master:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE" .
    - docker push "$CI_REGISTRY_IMAGE"
  only:
    - master

build:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
    - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
  except:
    - master

但是,这两种方法对我来说都不管用,因为我需要用python来测试,而让docker来构建映像。有没有办法在Gitlab CI中不创建一个同时安装python和Docker的自定义Docker映像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-07 22:03:59

我发现我可以创造多个工作岗位,每个工作都有自己的形象:

代码语言:javascript
运行
复制
stages:
  - test
  - build

test:
  stage: test
  image: python:3.7-slim
  variables:
    DJANGO_SECRET_KEY: key
  before_script:
    - pip3 install -r requirements.txt
  script:
    - python manage.py test
  only:
    - master

build:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE" .
    - docker push "$CI_REGISTRY_IMAGE"
  only:
    - master
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53198152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档