【发布时间】:2022-01-12 12:38:53
【问题描述】:
我正在努力为我的 Jenkins 流水线获得正确的配置。
它可以工作,但我不知道如何分开测试和构建阶段。
要求:
- 具有独立测试和构建阶段的 Jenkins 流水线
- 测试阶段需要铬(我目前使用节点高山图像+添加铬)
- Build 阶段正在构建 Docker 映像,稍后发布(发布阶段)
当前设置:
Jenkins 文件:
pipeline {
environment {
...
}
options {
...
}
stages {
stage('Restore') {
...
}
stage('Lint') {
...
}
stage('Build & Test DEV') {
steps {
script {
dockerImage = docker.build(...)
}
}
}
stage('Publish DEV') {
steps {
script {
docker.withRegistry(...) {
dockerImage.push()
}
}
}
}
Dockerfile:
FROM node:12.16.1-alpine AS build
#add chromium for unit tests
RUN apk add chromium
...
ENV CHROME_BIN=/usr/bin/chromium-browser
...
# works but runs both tests & build in the same jenkins stage
RUN npm run test-ci
RUN npm run build
...
这可行,但正如您所见,“构建和测试 DEV”是一个阶段,
我想要 2 个单独的 jenkins 阶段(测试、构建)
我已经尝试使用 Jenkins 代理 docker 并在 jenkins 文件中为测试阶段定义图像,但我不知道如何在其中添加缺少的 chromium 包。
Jenkins 文件:
pipeline {
agent {
docker {
image 'node:12.16.1-alpine'
//add chromium package here?
//set Chrome_bin env?
}
}
我也想过使用已经包含铬的docker镜像,但找不到任何官方镜像
非常感谢您对如何完成这项工作的帮助/见解。
【问题讨论】:
标签: docker jenkins dockerfile jenkins-pipeline pipeline