본문으로 바로가기

Docker에서 Jenkins 설치

category Back-end 2019.03.14 00:34

1. Dockerfile 생성

root 계정에서 작업합니다.

vi Dockerfile

1 2 3 4 5 6 FROM jenkins:2.60.3 USER root RUN apt-get update && \ apt-get -y install maven && \ groupadd -g 500 madosa && \ useradd -g madosa -u 500 -m madosa

Docker 이미지를 새로 만드는 이유는 다음 두가지

  1. maven 설치

  2. docker container에서 사용할 사용자 설정

4번째 줄까지는 동일하고 5, 6번째 줄은 서버 환경에 맞게 조정필요함

jenkins 기본 이미지의 사용자는 jenkins (uid: 1000)로 호스트의 jenkins 홈 경로 사용 권한을 가지고 있어야 됨

위 설정의 예는 호스트 madosa 계정과 그룹의 id가 500:500 이고, 호스트에 생성한 jenkins 홈 디렉토리의 소유자가 madosa 계정일때의 설정
jenkins 이미지 생성 시 madosa 계정과 그룹을 호스트와 동일하게 생성해 주었음
이후 container 생성 시 madosa 계정을 container 사용자로 지정

2. Docker 이미지 빌드

root 계정에서 작업합니다.

docker build -t jenkins-maven:2.60.3 .

3. Jenkins 홈 디렉토리, 로그 설정 파일 생성

madosa 계정에서 작업합니다.

mkdir /home/madosa/app/jenkins

vi /home/madosa/app/jenkins/log.properties

1 2 3 handlers=java.util.logging.ConsoleHandler jenkins.level=FINEST java.util.logging.ConsoleHandler.level=FINES

4. Container 생성

root 계정에서 작업합니다.

docker create --name jenkins -u madosa -p 48080:8080 --env JAVA_OPTS="-Duser.timezone=Asia/Seoul -Djava.util.logging.config.file=/var/jenkins_home/log.properties" -v /home/madosa/app/jenkins:/var/jenkins_home jenkins-maven:2.60.3

호스트 사용자의 uid가 container의 jenkins uid와 같으면 유저 설정이 없어도 되지만 실제 검증에 적용할 때 호스트의 madosa 계정과 컨테이너의 jenkins 계정의 uid가 동일함에도 사용할때 문제가 되서 컨테이너 생성 시 사용자 uid를 직접 지정해 주었음

5. Container 실행

root 계정에서 작업합니다.

docker start jenkins

6. 배포를 위한 호스트 키 확인 작업

ssh를 통해 배포를 하고 있기 때문에 배포할 서버의 호스트 키 확인이 필요합니다.

우선 ssh 접속을 위해서 사용할 key를 container 에서 접근할 수 있도록 jenkins 홈 디렉토리에 복사해 줍니다.

madosa 계정에서 작업합니다.

cp -r ~/.ssh ~/app/jenkins

다음 명령어로 container에 접속합니다.

root 계정에서 작업합니다.

docker exec -it jenkins bash

container 쉘이 열리면 배포될 각 서버에 ssh 접속을 한번씩 수행합니다.

ssh -i /var/jenkins_home/.ssh/ssh-접속을-위한-키.pem root@host주소

처음 접속하는 경우 다음과 같이 host key에 대해 확인합니다.

The authenticity of host 'host주소' can't be established.
RSA key fingerprint is SHA256:~~~~~~~~~~~~~~~~~~~~~~~~~~.
Are you sure you want to continue connecting (yes/no)? yes

yes를 입력해서 호스트를 확인합니다.

이후 서버가 변경되면 동일한 과정으로 호스트 확인 과정을 거칩니다.


댓글을 달아 주세요

대마도사 블로그
블로그 이미지 대마도사 님의 블로그
MENU
VISITOR 오늘0 / 전체11,179