node { def app stage('Clone repository') { /* Let's make sure we have the repository cloned to our workspace */ checkout scm } stage('Build image') { /* This builds the actual image; synonymous to * docker build on the command line */ app = docker.build("thisfro/plantex") } stage('Test image') { /* Ideally, we would run a test framework against our image. * For this example, we're using a Volkswagen-type approach ;-) */ app.inside { // php 'bin/phpunit' sh 'echo "success"' } } stage('Push image') { docker.withRegistry('https://hub.thisfro.ch') { app.push("$BUILD_NUMBER") app.push('latest') } } stage('Deploy staging') { sh 'docker-compose --project-directory /opt/containers/pflaenz.li --file /opt/containers/pflaenz.li/docker-compose.yml up -d' } }