Jenkins+Docker部署Node应用(Mongo+Redis)
我有一个Node应用,用到了Mongo和Redis,现在想要用jenkins做CI。
jenkins是直接在服务器上用apt-get下载的,直接安装在服务器上。 Node,Mongo,Redis都用docker做支持。
我目前是分了几个stages,第一个stage启动Mongo,第二个stage启动Redis,第三个stage才是在Node中启动应用。 Jenkinsfile大致为:
pipeline {
agent none
stages {
stage('Mongo') {
agent {
docker { image: 'mongo:latest' }
}
steps {
sh 'mongod'
}
}
stage('Redis') {
agent {
docker { image: 'redis:latest' }
}
steps {
sh 'xx'
}
}
stage('Deploy') {
agent {
docker { image: 'node:8.9.0' }
}
steps {
sh 'npm --version'
sh 'npm --version'
sh 'npm install'
sh 'npm start'
}
}
}
}
出了自己写个dockerfile把Node+mongo+redis搞到一个image里之外,还有没有什么更优雅的实现方法?