젠킨스는 CI / CD를 지원하는 오픈소스 자동화 프로그램입니다.
빌드를 자동화해주는 우리의 집사 젠킨스를 우분투 운영체제에 도커로 설치해 구동하는 것까지 진행해보도록 하겠습니다.
먼저 도커와 docker-compose를 우분투에 설치해주어야 합니다. 설치를 진행합니다.
젠킨스는 자바기반으로 동작하기 때문에 운영체제에 자바가 설치되어 있어야 합니다 없으면 플러그인 설치 시 에러가 발생합니다.
자바 설치를 진행합니다 저는 openjdk 11을 다운받았습니다.
sudo apt-get update
# JAVA11 설치
sudo apt-get install openjdk-11-jdk
Dockerfile과 docker-compose를 이용해 젠킨스를 설치하고 구동할 예정입니다.
젠킨스 전용 디렉토리를 생성해줍니다. 저는 root계정의 홈 디렉토리에 생성하겠습니다.
mkdir ~/my-jenkins
my-jenkins디렉토리로 이동 후 작업을 진행합니다.
jenkins의 이미지를 받아 해당 이미지를 베이스로 도커를 설치하기 위해 도커파일을 작성합니다.
cd ~/my-jenkins
vi Dockerfile
젠킨스 상에서 사용자를 root로 지정하고 docker를 설치한다는 내용입니다.
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
docker compose 파일을 작성합니다.
vi docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
privileged: true
ports:
- 9090:8080
- 50000:50000
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
저는 젠킨스의 포트를 9090으로 하였습니다 원하는 포트를 지정합니다.
aws EC2에서 구동한다면 젠킨스의 포트를 보안그룹에서 개방해주어야할 것입니다.
운영체제에 설치된 docker.sock을 사용하도록 하고 플러그인 등이 설치될 디렉토리도 매핑하였습니다.
docker compose로 젠킨스를 구동합니다.
docker-compose up -d
젠킨스 컨테이너가 잘 구동됐는지 확인합니다.
docker container ls
브라우저에서 아이피:포트를 입력해 접속하면 시크릿 키를 입력하라는 창이 뜹니다. docker log 명령어로 시크릿 키를 찾아 복사하여 입력합니다.
docker logs jenkins
저기서 알려주는 경로를 찾아가도 시크릿 키를 알 수 있습니다.
그 다음 Install suggested plugins
를 눌러 플러그인 설치를 진행합니다.
설치 완료되면 관리자 계정을 생성하라고 합니다. 생성합니다.