[Jenkins] DooD 방식의 Jenkins에서 파이프라인 중 Permission 문제

2025. 5. 30. 03:08·Programming/트러블슈팅
반응형

 

 


발생 원인

ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
script returned exit code 1

Jenkins 파이프라인 작성 후, build과정에서 오류가 났다.

Dood 방식으로 Jenkins를 설치했는데, docker.sock에 권한이 없다고 뜬다.

현재 Jenkins 설정 상황

Jenkins Dockerfile

FROM jenkins/jenkins:lts
USER root

# Docker CLI 설치
RUN apt-get update && \
    apt-get install -y ca-certificates curl gnupg lsb-release && \
    install -m 0755 -d /etc/apt/keyrings && \
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
    apt-get update && \
    apt-get install -y docker-ce-cli && \
    groupadd -f docker && \
    usermod -aG docker jenkins

USER jenkins

Docker-compose.yml

services:
  jenkins:
    build: ./jenkins
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - global_network

발생이유

호스트와 jenkins 컨테이너 내부의 docker 간 group ID가 달라서 발생한 문제였다.

해결방법

FROM jenkins/jenkins:lts
USER root

RUN groupdel docker || true && \
    groupadd -g 987 docker && \
    usermod -aG docker jenkins

# Docker CLI 설치
RUN apt-get update && \
    apt-get install -y ca-certificates curl gnupg lsb-release && \
    install -m 0755 -d /etc/apt/keyrings && \
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
    apt-get update && \
    apt-get install -y docker-ce-cli


USER jenkins

Jenkins의 Dockerfile을 수정해기존 docker group을 삭제 후,GID를 명시적으로 지정해 group에 추가해줬다.


틀린 부분이 있거나 인용한 부분에 대해 문제가 있을 시
댓글로 알려주시면 감사하겠습니다.

반응형

'Programming > 트러블슈팅' 카테고리의 다른 글

[Discord] lavalink 1006 에러 해결기  (0) 2026.03.16
[보안] NGINX ip 직접 접속 차단하기  (0) 2025.05.18
'Programming/트러블슈팅' 카테고리의 다른 글
  • [Discord] lavalink 1006 에러 해결기
  • [보안] NGINX ip 직접 접속 차단하기
wwwjong
wwwjong
wwwjong 님의 블로그 입니다.
  • wwwjong
    wwwjong 님의 블로그
    wwwjong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • Programming (12)
        • 트러블슈팅 (3)
        • Dev notes (9)
      • CS (2)
        • Infra (2)
      • 개발환경 (6)
        • Ubuntu (6)
      • Algorithms (15)
        • 백준 (8)
        • Algorithm (3)
        • 코드트리 (3)
        • Programmers (1)
      • Study (6)
        • 면접을 위한 CS 전공지식 노트 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    면접을 위한 CS 전공지식 노트
    딥러닝
    Server
    skala
    Jenkins
    백준
    트랜스포머
    코드트리
    LLM
    docker
    docker compose
    코테공부
    ubuntu
    코딩테스트
    computer science
    Nginx
    transformer
    CS
    ubuntu server
    AI
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
wwwjong
[Jenkins] DooD 방식의 Jenkins에서 파이프라인 중 Permission 문제
상단으로

티스토리툴바