jenkins - 如何在声明性 Jenkins 管道中添加 sidecar MySQL?

标签 jenkins continuous-integration jenkins-pipeline

我正在设置一个 PHP 构建系统,需要运行一个本地 MySQL 实例来执行测试。目前我正在使用声明式管道语法并使用 docker。是否可以在声明式语法中将 MySQL 作为 sidecar 运行?

如果没有任何其他方法来运行 MySQL 代理以及自定义 docker 镜像并执行迁移?

最佳答案

目前有no support for sidecar containers in Jenkins declarative pipelines .

您使用脚本化管道将 MySQL 作为 sidecar 容器运行 as shown in the Jenkins documentation :

node {
    checkout scm
    docker.image('mysql:5').withRun('-e "MYSQL_ROOT_PASSWORD=my-secret-pw"') { c ->
        docker.image('mysql:5').inside("--link ${c.id}:db") {
          /* Wait until mysql service is up */
          sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
        }
        docker.image('centos:7').inside("--link ${c.id}:db") {
          /*
           * Run some tests which require MySQL, and assume that it is
           * available on the host name `db`
           */
          sh 'make check'
        }
  }
}

您可以使用 <script> 在声明性管道中执行脚本化管道的片段。标签: https://jenkins.io/doc/book/pipeline/syntax/#script

关于jenkins - 如何在声明性 Jenkins 管道中添加 sidecar MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50369117/

相关文章:

continuous-integration - 在 hudson/jenkins 中加入了 "Build other projects"的控制台输出

jenkins - 在Jenkinsfile中的哪里放置try/catch

java - Jenkins Slave 静态分析失败

Maven 构建在 Jenkins 上失败,但可以在本地计算机上运行

javascript - 将 Jenkins 用于基于 Gulp 的项目

android - 如何保护用于上传 google play 商店的 faSTLane json key 文件

unit-testing - 单元测试/与 Simulink/Stateflow 的持续集成

java - 从 Java 函数返回环境变量,并在 Jenkins 中设置相同的环境变量以运行构建

jenkins - Jenkins 上的 JUnit 结果超过 1 个图表

jenkins - 当需要运行管道时,错误 WorkflowScript : 8: Expected one of "steps", "stages"或阶段 "parallel"为 "check out scm"