CI : 즉 어플리케이션의 소스를 통합
CD : 소스의 변경사항이 고객까지 배포
docker pull jenkins/jenkins
docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root jenkins/jenkins
docker ps -a
docker logs [컨테이너 ID]
좌측 새로운 Item 선택
작업명, 작업방식 선택
pipe-sciprt 작성
node {
git poll: true, url:'https://github.com/Dohyun-98/jenkins-practice.git'
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'docker-hub',
usernameVariable: 'DOCKER_USER_ID',
passwordVariable: 'DOCKER_USER_PASSWORD']]) {
stage('Pull') {
git 'https://github.com/Dohyun-98/jenkins-practice.git'
}
stage('Unit Test') {
}
stage('Build') {
sh(script: 'docker-compose build app')
}
stage('Tag') {
sh(script: '''docker tag ${DOCKER_USER_ID}/flask \
${DOCKER_USER_ID}/flask:${BUILD_NUMBER}''') }
stage('Push') {
sh(script: 'docker login -u ${DOCKER_USER_ID} -p ${DOCKER_USER_PASSWORD}')
sh(script: 'docker push ${DOCKER_USER_ID}/flask:${BUILD_NUMBER}')
sh(script: 'docker push ${DOCKER_USER_ID}/flask:latest')
}
stage('Deploy') {
sh(script: 'docker-compose up -d production')
}
}
}