
🌅 docker compose를 통해 jenkins를 띄워볼 것이다!
도커는 docker-compose 라는 것을 지원한다.
docker-compose : 여러 컨테이너의 실행을 한번에 관리할 수 있게 도와주는 도커의 도구입니다.
=> 하지만 저희와 같이 하나의 컨테이너만 필요한 상황에서도 유용하게 사용할 수 있다.
✔ docker-compose 사용하기
$ sudo apt install docker-compose
✔ docker-compose.yml 만들기
vi docker-compose.yml : 파일을 만든다.
version: "3"
services:
jenkins:
image: jenkins/jenkins:lts
user: root
volumes:
- ./jenkins:/var/jenkins_home
ports:
- 8080:8080
user : 컨테이너가 실행될 리눅스의 사용자 계정을 root로 명시한다.volumes : 도커 컨테이너의 데이터는 컨테이너가 종료되면 휘발된다. 도커 컨테이너의 데이터를 보존하기 위해 사용한다. (/var/jenkins_home 이라는 디렉터리를 /jenkins와 마운트하고 데이터를 보존할 수 있다.)port : 좌측이 호스트 port, 우측이 컨테이너 port (컨테이너 외부와 내부 포트를 포워딩한다.)=> docker-compose.yml이 존재하는 경로에서 도커 컨테이너를 실행할 수 있다.
✔ docker container 실행
$ sudo docker-compose up -d

성공!
✔ jenkins 초기 password 알기
$ sudo docker logs jenkins
을 통해 jenkins 컨테이너에 출력된 로그를 확인할 수 있다.
현재는 /var/jenkins_home => ./jenkins 로 변경되었다. (docker-compose의 volumes에서 설정해주었다.)
뒤늦게 알았는데, secrets은 root 계정만 접근할 수 있다.

✔ port 변경하기
docker-compose.yml 에서 호스트 port를 변경해주면 된다.
✔ 타임 존을 서울로 설정하기!
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Seoul')
Jenkins 관리 -> Script console에서 위 스크립트를 입력하면 타임 존이 서울로 설정된다.
참고