CI CD

docker jenkins container 만들기와 복제하기

주술쟁이 2021. 4. 30. 16:19

jenkins docker 설치
1. jenkins container 생성
alias명 : myjenkins
data volume명 : jenkins-home-prod
docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v jenkins-home-prod:/var/jenkins_home jenkins/jenkins
2. http://localhost:8080/ Open
   cat /var/jenkins_home/secrets/initialAdminPassword 에서 jenkins의 Administrator password 찾아서 등록
3. Install suggested plugins 선택하여 설치 진행
4. Create First Admin User 화면에서 관리자 생성

jenkins container 복제
1. 복제 전에 container 종료 시킨다.
2. 빈 데이터 볼륨을 생성한다.
docker volume create --name jenkins-home-staging
docker volume create --name jenkins-home-development
* 삭제 명령어
docker volume rm jenkins-home-staging
docker volume rm jenkins-home-development
3. prod 볼륨을 사용하여 staging 볼륨에 복제후 복제된 staging container 작성
jenkins/jenkins 이미지를 사용하여 임시 컨테이너를 생성.
prod 볼륨과 staging 볼륨을 마운트하여 데이터 볼륨을 복사. 단 이 때 --user root을 사용하여 복제한다.
복제 후 실제 jenkins 데이터가 들어가는 폴더 /var/jenkins_home의 소유자를 바꿔준다. (지금 마운트된 이름 jenkins_home_staging 에 대해서 처리한다.)
소유자를 변경하지 않으면, 복제시 root로 복제 하였기 때문에 /var/jenkins_home 소유자가 root가 되어 기동이 permission denied 에러가 발생한다. 
docker run --rm -it --user root -v jenkins-home-prod:/var/jenkins_home -v jenkins-home-staging:/var/jenkins_home_staging jenkins/jenkins bash -c "cd /var/jenkins_home_staging && cp -a /var/jenkins_home/* . && cd / && chown -R jenkins:jenkins /var/jenkins_home_staging"

docker run -d --name jenkins_staging -p 8081:8080 -p 50001:50000 -v jenkins-home-staging:/var/jenkins_home jenkins/jenkins
4. 같은 방법 prod 볼륨을 사용하여 development 볼륨에 복제후 복제된 development container 작성
docker run --rm -it --user root -v jenkins-home-prod:/var/jenkins_home -v jenkins-home-development:/var/jenkins_home_development jenkins/jenkins bash -c "cd /var/jenkins_home_development && cp -a /var/jenkins_home/* . && cd / && chown -R jenkins:jenkins /var/jenkins_home_development"
docker run -d --name jenkins_development -p 8082:8080 -p 50002:50000 -v jenkins-home-development:/var/jenkins_home jenkins/jenkins

'CI CD' 카테고리의 다른 글

yona 설치 방법(ubuntu 20.4)  (0) 2022.01.28
docker로 MS-SQL 2019 설치  (0) 2021.05.06