🌅 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에서 위 스크립트를 입력하면 타임 존이 서울로 설정된다.
참고