이제 서버도 있겠다 도커를 설치해보자.
EC2 접속은 정리가 잘된 곳이 많으니 다들 알아서 접속하자
접속후 home에
mkdir jenkins
로 젠킨스가 관련 도커 파일을 관리할 디렉토리를 생성해 주었다.
젠킨스를 직접 받아 사용하는 방법도 있겠지만 젠킨스는 이미지로 이쁘게 구현이 되어있어서 그냥 머리 안아프게 도커로 사용하는 것이 편하다.
그럼 젠킨스를 사용하기 위해 서버에 도커를 깔아보자
까는 법은 도커 사이트에 이쁘게 정리되어있다. 걍 따라하자
도커 설치 이후
sudo chmod 006 /var/run/docker.sock
권한을 주어야 한다. - 안하면 docker ps 안먹힘
이제 도커 실행을 위한 docker-compose.yml을 작성해보자
1) 생성한 jenkins 디랙토리로 이동하자
cd jenkins
2) docker-compose.yml 작성
!!!! 우리의 목표는 도커의 내부에서 도커 빌드를 통해 이미지를 만들어 도커 허브에 push해야한다.
때문에 도커의 주소를 지정을 해줘야한다.
container를 통해 생성된 서버는 기본주소가 도커를 기준으로 하기 때문에 원래 ec2서버의 도커 명령어를 사용하기 위해서는 도커의 위치를 선언해줄 필요가 있다.!!!
sudo vi docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: dockerfile
dockerfile: Dockerfile
container_name: jenkins
image: jenkins/jenkins:jdk17 ## 사용하는 자바의 버전을 넣는다
user: root
privileged: true
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- ${DOCKER_PATH}:/usr/bin/docker ## 이거 중요, 도커 실행시 도커 내부에서 도커를 사용하기위해 필요
- /APP/pkgs/jenkins:/var/jenkins_home
3) Dockerfile 작성
sudo vi Dockerfile
FROM jenkins/jenkins:jdk17
USER root
RUN apt-get update &&\
apt-get upgrade -y &&\
apt-get install -y openssh-client
4) 실행
이 후 해당 디렉토리는 다음과 같아야 한다
ubuntu@{ip}:~/jenkins$ ls
Dockerfile docker-compose.yml
실행하자
DOCKER_PATH=$(which docker) docker compose up -d
docker ps
로 실행되었는지 확인
ubuntu@ip-172-31-37-148:~/jenkins$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
************ jenkins/jenkins:jdk17 "/usr/bin/tini -- /u…" 3 seconds ago Up 2 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins
브라우저로
http://{ec2_서버_ip}:8080
로 접근하면 된다.
이때 로그인의 경우 초기
와 같이 뜨는데
이제 ec2 터미널에서
ubuntu@ip-172-31-37-148:~/jenkins$ ls
Dockerfile docker-compose.yml jenkins_home
jenkins_home 디렉토리가 생성된걸 확인할 수 있는데
해당 디렉토리에서 secrets 파일 안에 initialAdminPassword에서 초기 비번을 확인할 수 있다.
이때 permission때문에 접근을 못하는데
sudo su
cd secret파일로 이동
cat initialAdminPassword
로 비번을 확인후 접속
이 후 계정 및 비번을 설정해주고
추천 플러그인을 설치해준다
이슈: 젠킨스 접속이 갑자기 느려짐
원인: 22번 포트를 0.0.0.0으로 열어준것 -> 외부 접근자들이 계속 접속을 시도함
해결: 내가 사용하는 ip만 특정지어줌
이슈: 추천 플러그인 설치시 다 실패하는 경우가 생김
원인: https 접근이 되지 않아서 그렇다
해결: 443포트와 80포트를 열어준다