[공부정리] Jenkins의 Docker In Docker 문제 해결

jeyong·2024년 6월 26일
0

공부 / 생각 정리  

목록 보기
99/120
post-custom-banner


이번 게시글에서는 Jenkins의 Docker In Docker 문제를 해결하는 방법을 기술하겠다. 이미 [공부정리] Docker를 이용한 Jenkins 설치 및 CI/CD 구축에서 해결 방법을 다룬 적 있었으나, docker 컨테이너를 실행할 때마다 다시 설정해주어야 하는 점이 귀찮았기 때문에 이번에는 Docker Compose를 이용해서 자동으로 설정하는 방법에 대해서 소개하겠다.

1. Docker 구성

이 구성은 Jenkins 컨테이너가 시작될 때 Docker를 자동으로 설치하도록 설정되어 있다.

Dockerfile

FROM jenkins/jenkins:lts-jdk17

USER root

RUN apt-get update && \
    apt-get -y install apt-transport-https \
      ca-certificates \
      curl \
      gnupg2 \
      software-properties-common && \
    curl -fsSL get.docker.com -o get-docker.sh && \
    sh get-docker.sh && \
    rm get-docker.sh

RUN groupadd -f docker
RUN usermod -aG docker jenkins

USER jenkins

Dockerfile은 필요한 패키지를 설치하고 Docker 설치 스크립트를 실행하여 Docker를 설치한다.

docker-compose

version: '3.8'

services:
  jenkins:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: jenkins
    environment:
      - TZ=Asia/Seoul
    user: root
    privileged: true
    ports:
      - "9090:8080"
      - "50000:50000"
    volumes:
      - ./jenkins/jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    hostname: jenkins

volumes:
  jenkins_home:
    driver: local

docker-compose.yml 파일은 Jenkins 컨테이너를 빌드하고 필요한 설정을 적용하여 Docker를 사용할 수 있도록 한다.

이 방법으로 매번 수동 설정할 필요 없이 Jenkins와 Docker를 효율적으로 사용할 수 있다.

실행 결과

docker compose up -d 명령어로 실행할 수 있다.

Dockerfile은 필요한 패키지를 설치하고 Docker 설치 스크립트를 실행하는 모습을 볼 수 있다. 또한 컨테이너 내부에서 docker 명령어가 잘 실행 되는 모습이다.

Jenkins에서 Docker 이미지를 빌드하고 실행할 수 있는 모습을 볼 수 있다.

profile
노를 젓다 보면 언젠가는 물이 들어오겠지.
post-custom-banner

0개의 댓글