젠킨스 컨테이너를 구동시켜 깃랩의 프로젝트가 병합될 때 자동으로 빌드 과정을 거친다.
| /home/ubuntu/Dockerfile
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
software-properties-common && \
. /etc/os-release && \
curl -fsSL https://download.docker.com/linux/${ID}/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/${ID} \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
이 Dockerfile은 Jenkins LTS 이미지를 기반으로하여 새로운 이미지를 빌드하는데 사용된다.
먼저, root 사용자로 전환하여 이미지의 패키지를 업데이트한다.
그 다음으로, apt-transport-https, ca-certificates, curl, gnupg2, zip, unzip, software-properties-common 패키지를 설치하고, Docker GPG 키를 다운로드하고 추가하여 Docker CE를 설치한다.
이 작업은 Docker를 이용한 빌드 및 배포를 위한 환경을 구성하는 것이다. 따라서 이 Dockerfile은 Jenkins LTS 이미지에 Docker CE를 설치하는 작업을 수행한다.
| /home/ubuntu/docker-compose.yml
# docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
ports:
- 8080:8080
volumes:
- ./jenkins_home:/var/jenkins_home
- //var/run/docker.sock:/var/run/docker.sock
이 파일은 Docker Compose를 사용하여 Jenkins 서비스를 정의한다.
버전 3.7을 사용하고 "jenkins"라는 이름을 붙인다. 현재 디렉토리에서 Dockerfile을 사용하여 빌드되고 "jenkins"라는 컨테이너 이름과 root 사용자로 실행된다. 이 서비스는 호스트의 8080 포트와 컨테이너의 8080 포트를 연결한다.
jenkins 컨테이너에서 실행되는 정보들을 저장하기 위해 Volume설정을 해줘야한다. "jenkins_home" 디렉토리를 컨테이너 내부의 "/var/jenkins_home" 디렉토리와 연결하고, 호스트의 "/var/run/docker.sock" 소켓을 컨테이너 내부의 "/var/run/docker.sock" 파일과 연결한다.
"/var/run/docker.sock" 파일은 호스트 시스템에서 Docker 데몬과의 통신을 위한 Unix 소켓 파일이다.
이 파일은 Docker CLI와 같은 도구가 Docker 데몬과 통신하여 컨테이너 생성, 실행, 중지 및 삭제와 같은 작업을 수행할 수 있도록 한다. Docker Compose 파일에서 "/var/run/docker.sock" 파일을 컨테이너 내부의 "/var/run/docker.sock" 파일과 연결하면, Jenkins 컨테이너 내에서 Docker 데몬과 통신할 수 있게 되면서 Jenkins 서비스에서 Docker를 이용한 빌드 및 배포 작업을 수행할 수 있다. 즉, 이 파일은 Jenkins 서비스를 정의하고 호스트와 컨테이너 간의 파일 및 포트 연결을 설정한다.
'기타 > 인프라 구축과정' 카테고리의 다른 글
[Infra] 6. 컨테이너 구동 - Voda Project (0) | 2023.04.04 |
---|---|
[Infra] 5. Jenkins 프로젝트 빌드 - Voda Project (0) | 2023.04.04 |
[Infra] 4. MariaDB 설정 - Voda Project (0) | 2023.04.04 |
[Infra] 3. https 설정 (Cerbot) - Voda Project (0) | 2023.04.04 |
[Infra] 1. 서버 환경세팅 - Voda Project (0) | 2023.04.04 |
댓글