[docker-compose] jenkins 설치 및 초기셋팅
docker
설치로 수동 작업해준 것들이 불편해 docker-compose
설치법으로 개편docker
, docker-compose
, zulu jdk 13
까지 모두 자동으로 설치된 jenkins 서버가 생성됨
1. Dockerfile 생성
FROM jenkins/jenkins:latest
## 현재 유저권한으로
USER $USER
## docker 설치
RUN curl -s https://get.docker.com/ | sh
## docker-compose 설치
RUN curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose && \
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
## dcs 툴 설치
RUN curl -sL bit.ly/ralf_dcs -o ./dcs && \
chmod 755 dcs && \
mv dcs /usr/local/bin/dcs
## zulu jdk 11 설치
RUN apt-get update && apt-get -y install software-properties-common && \
apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main' && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
apt-get update && apt-get -y install zulu-11
## docker group 에 jenkins 추가
RUN usermod -aG docker jenkins
2. docker-compose.yml 생성
ports 만 원하는 HOST포트로 변경 해주면 된다
설정방법: HOST포트:Container포트
version: '3'
services:
jenkins:
privileged: true
build: .
restart: always
ports:
- "9080:8080"
- "50010:50000"
expose:
- "8080"
- "50000"
volumes:
- './jenkins_home:/var/jenkins_home'
- '/var/run/docker.sock:/var/run/docker.sock'
environment:
TZ: "Asia/Seoul"
3. docker-compose 명령어 alias 등록
~/.bashrc
에 아래의 내용을 등록하고 source ~/.bashrc
하면 alias 가 등록된다
alias dco='docker-compose'
alias dcb='docker-compose build'
alias dce='docker-compose exec'
alias dcps='docker-compose ps'
alias dcr='docker-compose run'
alias dcup='docker-compose up'
alias dcdn='docker-compose down'
alias dcl='docker-compose logs'
alias dclf='docker-compose logs -f'
4. docker-compose 구동
dcup -d
5. jenkins_home User로 소유자 변경
sudo chown -R $USER:$USER jenkins_home
6. 패스워드
1. docker-compose logs로 최근 로그 보기
dcl
2. 로그에서 패스워드 복사
예시에서는 56afea9214194f32b6f06a5e4fb8c807 패스워드를 복사한다
예시) 56afea9214194f32b6f06a5e4fb8c807
jenkins_1 | *************************************************************
jenkins_1 | *************************************************************
jenkins_1 | *************************************************************
jenkins_1 |
jenkins_1 | Jenkins initial setup is required. An admin user has been created and a password generated.
jenkins_1 | Please use the following password to proceed to installation:
jenkins_1 |
jenkins_1 | 56afea9214194f32b6f06a5e4fb8c807
jenkins_1 |
jenkins_1 | This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
jenkins_1 |
jenkins_1 | *************************************************************
jenkins_1 | *************************************************************
jenkins_1 | *************************************************************
3. 로그에서 패스워드를 찾을 수 없을 때
jenkins_home/secrets/initialAdminPassword 위치에 초기 패스워드 정보가 있으므로
아래의 명령어로 패스워드 정보를 찾아서 복사
cat ./jenkins_home/secrets/initialAdminPassword
4. jenkins 웹에 패스워드 복사
jenkins 웹에 접속해서 패스워드 복사 후 continue 클릭
5. 필수 Plugin 설치
Install suggested plugins 를 클릭하고 필수 플러그인 설치
필수 Plugin 설치 중 화면
6. ADMIN 계정 생성
admin 게정 생성 후 Save and Continue 를 클릭
7. 추가 Plugin 설치
로그인 후 - Jenkins 관리 - 플러그인 관리 - 설치 가능 탭 에서
아래의 Plugin에 있는 추가 Plugin 설치 후 아래 지금 다운로드하고 재시작 후 설치하기 클릭
Date Parameter
https://plugins.jenkins.io/date-parameter/
Spring Batch 파라메터 관련
Notification plugin
https://plugins.jenkins.io/notification/
jenkins Notification
Maven Integration
https://plugins.jenkins.io/maven-plugin/
Publish Over SSH
https://plugins.jenkins.io/publish-over-ssh/
GitLab
https://plugins.jenkins.io/gitlab-plugin/
Gitlab Hook Plugin
https://plugins.jenkins.io/gitlab-hook/
Blue Ocean
https://plugins.jenkins.io/blueocean/
Jenkins Pipeline 참조
https://kingbbode.tistory.com/42
Extensible Choice Parameter
참조: https://kingbbode.tistory.com/42
https://plugins.jenkins.io/extensible-choice-parameter/
Rebuilder
참조: https://kingbbode.tistory.com/42
https://plugins.jenkins.io/rebuild/
Nvm Wrapper
참조: https://kingbbode.tistory.com/42
https://plugins.jenkins.io/nvm-wrapper/
설치 안함
docker-build-step
https://plugins.jenkins.io/docker-build-step/
Docker Compose Build Step
https://plugins.jenkins.io/docker-compose-build-step/
Pipeline Maven Integration
https://plugins.jenkins.io/pipeline-maven/
Pipeline restFul API
https://plugins.jenkins.io/pipeline-restful-api/
Pipeline timeline
https://plugins.jenkins.io/pipeline-timeline/
SSH Pipeline Steps
https://plugins.jenkins.io/ssh-steps/
Kubernetes :: Pipeline :: DevOps Steps
https://plugins.jenkins.io/kubernetes-pipeline-devops-steps/
추가 Plugin 설치 후 재시작
아래 설치가 끝나고 실행중인 작업이 없으면 Jenkins 재시작에 체크하면 설치가 완료되고 jenkins 를 재시작함
6. Global Tool Configuration 설정
Jenkins 관리 - Global Tool Configuration 클릭
JDK 항목에 설치된 zulu JDK 13 정보 등록
install automatically 체크박스를 해제 하고 아래 정보를 입력
Name: zulu jdk 13
JAVA_HOME: /usr/lib/jvm/zulu-13-amd64
Git, Gradle, Maven 설치
7. 시스템 설정
Jenkins 관리 - 시스템 설정 클릭
글로벌 변수 등록
필요한 글로벌 변수가 있다면 등록
SSH Servers 등록
배포를 진행할 SSH 서버 정보 등록
8. Credentials 등록
Credentials - (global) 클릭
Add Credentials
Add Credentials 클릭 - GitLab 인증 정보 등록 후 OK