jenkins docker에서 docker build하여 docker hub에 업로드
4899 단어 Jenkins
jenkins docker에서 docker build는별로하지 않을까. 역시 jenkins 환경도 dockerfile로 코드로 관리하고 싶다는 생각은 이상한 일이 아니라고 생각하지만. 별로 기사를 찾을 수 없습니다. CI를 체험하고 싶었기 때문에 우선 놀아 보았다.
jenkins pipeline의 정의
흐름으로는
gitをポーリング、変更があったらPipelineがトリガーされる
↓
checkout: gitからdockerfile checkout
↓
build: docker build
↓
push: docker hubへpush
라는 심플한 흐름.
아래 pipeline 정의 파일. version이라는 파일에 version을 쓰는 것으로 docker 이미지의 version을 지정할 수 있도록 했다.
// 前提
// - ホストでdocker hubにpushするためにdocker loginを済ませている
// - Scripted pipelineという非推奨の書き方らしい
node {
stage('Checkout') {
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [], submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/paper2/jenkins']]])
}
// versionの読み込み
def version = readFile('version').trim()
def imageName = "paper2/jenkins:" + version
print imageName
stage('Build') {
sh "docker build -t " + imageName + " ."
}
stage ('Push') {
// jenkinsに登録した認証情報を利用する
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'docker-hub-paper2',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh 'docker login -u $USERNAME -p $PASSWORD'
}
sh "docker push " + imageName
}
}
시
서버 공개하고 있지 않기 때문에 webhook 사용할 수 없기 때문에 git에 1분마다 폴링하는 설정으로 했다.
버전 파일을 변경해 봅니다.
$ vi version # v1.0 -> v1.1に変更
$ git add -A
$ git commit -m "v1.1"
$ git push
1분 후 마음대로 CI가 스타트(#24입니다)
할 수 있었다! !
자동으로 upload까지 되는 느낌 견딜 수 없네요.
Reference
이 문제에 관하여(jenkins docker에서 docker build하여 docker hub에 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/paper2/items/1a06d17c67972e76ddf6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gitをポーリング、変更があったらPipelineがトリガーされる
↓
checkout: gitからdockerfile checkout
↓
build: docker build
↓
push: docker hubへpush
// 前提
// - ホストでdocker hubにpushするためにdocker loginを済ませている
// - Scripted pipelineという非推奨の書き方らしい
node {
stage('Checkout') {
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [], submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/paper2/jenkins']]])
}
// versionの読み込み
def version = readFile('version').trim()
def imageName = "paper2/jenkins:" + version
print imageName
stage('Build') {
sh "docker build -t " + imageName + " ."
}
stage ('Push') {
// jenkinsに登録した認証情報を利用する
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'docker-hub-paper2',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh 'docker login -u $USERNAME -p $PASSWORD'
}
sh "docker push " + imageName
}
}
서버 공개하고 있지 않기 때문에 webhook 사용할 수 없기 때문에 git에 1분마다 폴링하는 설정으로 했다.
버전 파일을 변경해 봅니다.
$ vi version # v1.0 -> v1.1に変更
$ git add -A
$ git commit -m "v1.1"
$ git push
1분 후 마음대로 CI가 스타트(#24입니다)
할 수 있었다! !
자동으로 upload까지 되는 느낌 견딜 수 없네요.
Reference
이 문제에 관하여(jenkins docker에서 docker build하여 docker hub에 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/paper2/items/1a06d17c67972e76ddf6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)