我正在设置一个 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/