[Jenkins] 설치

ss0510s·2024년 5월 23일
0

Infra

목록 보기
2/6

Jenkins 설치

Jenkins의 Docker File

FROM jenkins/jenkins:lts

USER root

# Install dependencies
RUN apt-get update -qq \
    && apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common

# Install Docker
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
RUN apt-get update  -qq \
    && apt-get -y install docker-ce

# Install Docker Compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

# Add jenkins user to docker group
RUN usermod -aG docker jenkins
  • jenkins 최신 버전 다운로드
  • jenkins에서 docker와 docker-compose를 실행하기 위해 설치

DockerFile을 DockerHub에 올리고 다운

  • 아래 명령어 입력 후 DockerHub의 username과 password 입력

    docker login
  • Docker Image 빌드

	docker build --tag ss0510s/jenkins:latest .
  • DockerHub에 Push
	docker push ss0510s/jenkins:latest

Docker-Compose

  • Docker-Compose를 통해 DockerHub에 올린 이미지 다운로드
jenkins:
    image: ss0510s/jenkins:latest
    container_name: jenkins
    environment:
      - VIRTUAL_PORT=8080
      - JENKINS_OPTS="--prefix=/jenkins"
    volumes:
      - ./docker_volumes/jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - infra

Jenkins 실행

  • Jenkins 페이지 접속 [url]:8080

  • Jenkins에서 관리자 암호 확인하여 접속

    docker exec -it jenkins /bin/bash
    cat /var/jenkins_home/secrets/initialAdminPassword
  • Install suggested plugins 를 선택하여 플러그인 설치 후 관리자 계정 생성

Jenkins 플러그인 설치 목록

  • Jenkins 관리 - Plugins 선택
  • Avaliable plugins 선택 후 설치하고자 하는 플러그인 이름 검색
  • 설치할 플러그인 선택 후 Install without restart 클릭
# ssh 커맨드 입력에 사용
SSH Agent

# docker 이미지 생성에 사용
Docker
Docker Commons
Docker Pipeline
Docker API

# 웹훅을 통해 브랜치 merge request 이벤트 발생시 Jenkins 자동 빌드에 사용
Generic Webhook Trigger

# GitHub인 경우
GitHub Integration Plugin
GitHub API Plugin
GitHub Authentication

# GitLab인 경우
GitLab
GitLab API
GitLab Authentication

# Node.js 빌드시 사용
NodeJS

❌ [이슈] 설치가 계속해서 실패 발생
- Available plugins → 해당 plugin 사이트 접속 → releases → direct link를 통해 로컬에 다운로드
- Advanced settings → Deploy plugin 파일 선택 → 다운로드한 파일 선택 → deploy

⇒ 직접 수동 다운로드를 통해 해결

⇒ nginx를 달고 할 경우 max file 문제가 발생 -> conf 파일에서 설정

Ubuntu Credential 추가

  • Jenkins 관리 - Manage Credentials 클릭
  • Stores scoped to Jenkins - Domains - (global)의 아래방향 화살표 - Add credentials 클릭
  • Kind를 SSH Username with private key로 설정
    • ID : Jenkins에서 Credential에 지정할 별칭 입력
    • Username : SSH 원격 서버 호스트에서 사용하는 계정명 입력
  • Enter directly 체크
    • Add 클릭
    • AWS *.pem 키의 내용을 메모장으로 읽어 복사 후 Key에 붙여넣기
      • 이후 Create 클릭
profile
개발자가 되기 위해 성장하는 중입니다.

0개의 댓글