Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For hver komponent skal der ligeledes være en compose folder under roden af repository'et. Folderen skal indeholde en docker-compose fil, der udtaler sig om hvordan komponenten startes i testsammenhæng og een der udtaler sig om hvordan komponenten startes, når denne skal deployes i NSP miljøerne. Yderligere kan man som leverandør have stor fordel af at lave en development compose-fil, som kan anvendes i udviklingsammenhæng (med mulighed for at mappe stier til deployment af war-filer og specificere hvor dockerfiler findes til build øjemed). 

Eksempler

Indhold i kode repository'et:

Code Block
main-src-folder
|
+-compose
| |
| +-test
| | |
| | +-docker-compose.yml
| |
| +-release
| | |
| | +-docker-compose.yml
| | 
| +-devel (optional)
| | |
| | +-docker-compose.yml
| |
| +-application.properties
| |
| +-datasource-ds.xml
| |
| +-log4j.xml
| |
| +-other_configuration_files
|
+-Dockerfile (alternativt under modulerne)
|
+-Jenkinsfile
|
+-source_folders_and_files


Indholdet af jenkinsfilen kan der ses et eksempel på her:

Code Block
languagegroovy
titleJenkinsfile
#!groovy

node {
  try {
    stage('Checkout') {
      checkout scm
    }

    stage('Build') { 
      //This will resolve to docker.image('registry.nspop.dk/platform/nspbuilder:jdk8').inside(){
      docker.image("${NSPBUILDER}").inside(){
        sh "mvn clean install"
      }
    }

    stage ('Archive') {
      //This will resolve to docker.build('registry.nspop.dk/components/ncc:build', '--pull .')
      docker.build("${REGISTRYTAG}", '--pull .')
    }

  } catch (err) {
    //slackSend channel: '<channelname>', color: 'bad', message: "${env.JOB_NAME} ${env.BUILD_NUMBER} - Build failed ... (<${env.BUILD_URL}|Open>)", tokenCredentialId: 'Slack-Token'
  } finally {
    stage ('Clean') {
      deleteDir()
    }
  }
}