본 문서는 Jenkins를 설치하고 실행하기 위한 내용을 포함합니다.
젠킨스는 CI / CD를 지원하는 오픈소스 자동화 프로그램입니다. 빌드를 자동화해주는 젠킨스를 우분투 운영체제에 도커로 설치해 구동하는 것까지 진행합니다.
sudo apt remove docker docker-engine docker.io containerd runc
# docker 리포지토리에 접근하기 위한 키 생성 설정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 패키지 매니저가 docker 설치 시, 설치 위치를 알기 위한 repository 추가
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 위에서 추가한 repository를 위해서 업데이트!
sudo apt update
# docker 설치
sudo apt install docker-ce
# 깔려서 잘 실행되는지 확인한다.
# Active: active (running) 라는 문구가 보이면 된거다.
sudo systemctl status docker
sudo usermod -aG docker ${USER}
##### 아래 2줄은 현재 계정으로 다시 로그인하기 위한 일종의 trick 이다.
##### 만약 아래처럼 못하면 그냥 exit으로 아예 터미널 종료 후, 다시 로그인을 시도한다.
sudo su - # 루트 계정으로 접속
su - ubuntu # 다시 원래 계정으로 로그인
# 제대로 docker 라는 group에 들어갔는지 확인한다.
# "docker"라는 문구가 보이면 성공한 것이다.
groups ubuntu
# sudo 없이 되는지 테스트해보자. 아래 명령어는 docker 명령어 테스트용으로 자주 쓴다.
docker run hello-world
sudo curl -L \
"https://github.com/docker/compose/releases/download/1.28.5/dockercompose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
# 이 명령어는 외부에서 그대로 파일을 가져와서 현재의 시스템에 올려 놓는 것이다.
# 결과적으로 "/usr/local/bin/" 경로에 "docker-compose" 라는 이름의 파일로 다운된다.
# 참고) https://github.com/docker/compose/releases 에서 최신 버전 확인이 가능하다.
# 최신 버전을 설치하고 싶다면 위 명령어에 보이는 1.28.5 라는 버전 숫자를 바꿔주면 된다!
sudo chmod +x /usr/local/bin/docker-compose # chmod 를 통해서 실행이 가능하게 세팅
docker-compose -v # docker-compose 명령이 제대로 먹히는 지 확인한다.
mkdir ~/jenkins-data
cd ~/jenkins-data
젠킨스 상에서 사용자를 root로 지정하고 docker를 설치한다는 내용의 Dockerfile을 작성합니다.
FROM jenkins/jenkins:lts
USER root
# install docker
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
privileged: true
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
docker-compose up -d
docker container ls
http://192.168.0.31:8080
docker logs jenkins
명령을 통해 출력되는 시크릿키를 입력하여 로그인합니다.
Manage → Script Console → 아래 스크립트 입력 → Run
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Seoul')
H 09,12,18 * * 0
H * * * *