我正在建立一个PHP构建系统,需要运行MySQL的本地实例来执行测试。目前我正在使用声明性管道语法和使用docker。是否可以将MySQL作为声明语法中的边车运行?
如果没有任何其他方法可以运行MySQL代理以及自定义docker镜像并执行迁移吗?
答案 0 :(得分:2)
当前有no support for sidecar containers in Jenkins declarative pipelines。
您使用脚本化管道as shown in the Jenkins documentation将MySQL作为Sidecar容器运行:
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