git push 하면 Jenkins에서 컨테이너를 빌드하고 DockerHub에 Push하는 체인을 만듭니다.
1.GitHub
2.Jenkins
3.DockerHub
4.DockerCE
5.Java8
6.Ubuntu Linux
7.MyDNS
Jenkins 설치 및 설정
인터넷에 가상 서버를 설정
IBM Cloud 가상 서버를 구축했습니다. htps : // 이런. b 에미 x. 네 t/
MyDNS에서 도메인 이름 얻기
# m h dom mon dow command
#
0 2 * * * curl --user USERID:PASSWD http://www.mydns.jp/login.html > /tmp/mydns.txt
DockerCE 설치
# add repo Docker-CE
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
# install Docker-CE
apt-get update
apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')
usermod -aG docker myuserid
Java8 설치
이 사이트를 참고로 설치
htps : // 이 m / Tsuto Munaka Muura /
Jenkins 설치
Jenkins 다운로드
htps : ///지킨킨 s. 이오 / 도 w 응 아 d /
Jenkins 시작 스크립트
#!/bin/bash
export BASE=/$HOME/jenkins
export JENKINS_HOME=$BASE/data
nohup java -jar jenkins.war --httpPort=9080 1>$BASE/logs/jenkins.log 2>$BASE/logs/jenkins.err &
Jenkins 설정
Youtube를 참고로 설정
htps //w w. 요츠베. 이 m/와 tch? v = 89yW 쵸오이 sk
GitHub와 Jenkins 간의 협력 설정
GitHub Webhooks 설정
GitHub 리포지토리 htps : // 기주 b. 코 m / 태에서 9 / 으 b 긴 긴 x 에서 설정
Jenkins 자격 증명 만들기
자격 증명 -> System -> Add domain -> 도메인, 도메인 이름 부여 -> OK
자격 증명 추가 ->
종류 「사용자명과 패스워드」
사용자 이름 DockerHub의 사용자 ID
비밀번호 같은 비밀번호
ID 파이프라인 스크립트가 참조하는 레이블 dockerhub
Jenkins 작업 설정
새 작업 만들기 -> 다른 이름으로 파이프 라인 선택 -> OK로 작업 만들기
1.General GitHub project 확인
2. URL 설정 htps : // 기주 b. 코 m / 태에서 9 / 우에 b - 긴긴 x /
3. 빌드 트리거의 GitHub hook trigger for GITScm polling
4. 파이프라인 설정, 정의 Pipeline script 선택
node {
stage('チェックアウト') {
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [], submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/takara9/web-nginx/']]])
}
// versionの読み込み
def version = readFile('version').trim()
def imageName = "maho/web-nginx:" + version
print imageName
stage('ビルド') {
sh "docker build --tag " + imageName + " ."
}
stage ('DockerHubへプッシュ') {
// jenkinsに登録した認証情報を利用する
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'dockerhub',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh 'docker login -u $USERNAME -p $PASSWORD'
}
sh "docker push " + imageName
}
}
참고 자료 htps : // 코 m / 미야 사쿠라 _ / ms / 9d9 8873c333cb9 9f43
빌드 실행 테스트
빌드 실행을 클릭하여 빌드 테스트
git push 트리거의 컨테이너 빌드 & 푸시
(1) 소스 코드를 로컬로 복제
git clone htps : // 기주 b. 코 m / 태에서 9 / 으 b 긴 긴 x
(2) 코드 편집
편집기에서 수정
버전 파일에 DockerHub 리포지토리 태그 설정 예 0.1, 0.2
(3) 리포지토리로 push
git commit -m "update"
git push
(4) wehhooks에 의해 체크 아웃, 빌드, 푸시가 실행된다.
요약
Reference
이 문제에 관하여(git push 하면 Jenkins에서 컨테이너를 빌드하고 DockerHub에 Push하는 체인을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MahoTakara/items/1b2f70389a2b8d18623c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)