저번 포스트에서 설치한 docker-compose를 사용해 Jenkins를 설치한다.
✔ docker-compose.yml 작성
vi docker-compose.yml
version: "3"
services:
jenkins:
image: jenkins/jenkins:lts
container_name: ubuntu_jenkins
user: root
volumes:
- /var/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 7777:8080
✔ 백그라운드로 실행
docker-compose up -d
✔ Jenkins 초기 password 확인
초기 password는 위 사진의 Administrator password
에 입력하면 된다.
$ sudo docker logs ubuntu_jenkins
또는
sudo su
cat /var/jenkins_home/secrets/initialAdminPassword
으로 확인할 수 있다.
secrets
는 root 계정만 접근할 수 있다.✔ 젠킨스 접속
비밀번호를 입력하면 아래와 같은 화면이 나온다.
✔ 젠킨스 plugin 설치
install suggested plugin으로 선택하여 필수적인 plugin들을 설치받도록 한다.
✔ 젠킨스 관리자 계정 생성
✔ 젠킨스 접속 완료
✔ 타임 존을 서울로 설정하기
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Seoul')
Jenkins 관리 -> Script console에서 위 스크립트를 입력하면 타임 존이 서울로 설정된다.
✔ 플러그인 설치
메뉴 Jenkins 관리 -> 플러그인 관리 -> Available plugins 에서 검색하여 설치
✔ NodeJS 설치
✔ Credential에 설정(접근 자격 설정)
-ec2_ssh_key
: 서버에 접근하기 위한 권한
-gitlab_token
: GitLab에 접근하기 위한 권한
- GitLab에서 key 받기
User Settings의 Access Tokens 접속
Token name : 임의의 이름
Select scopes : 전체 선택
Create personal access token 버튼 클릭하여 생성
생성된 key는 바로 복사해두는 것을 추천한다.
왜냐면 다시 못 보기 때문
(만약 위의 Username with password가 안된다면
kind : GitLab API token으로 시도해보길 바란다.)
다음 포스팅을 보면 Jenkins Pipeline에서 프로젝트 디렉토리에 있는 Dockerfile 과 docker-compose를 실행시킨다.
그러기 위해서는 Jenkins Container 내부에 docker와 docker-compose 가 설치되어 있어야 한다.
※ 참고) 이 방식은 DinD 방식인데 권장하는 방식은 아니다
Docker - DinD DooD
✔ Jenkins Container 접근
docker exec -it {Jenkins Container Name} /bin/bash
✔ docker-compose 설치
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
✔ docker 설치
# docker image를 만들 때 아직 docker가 설치되지 않았다면 설치한다.
sh """
if ! command -v docker > /dev/null; then
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
fi
"""
해당 script 내용은 다음 포스팅에서 확인할 수 있다.