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
아래 명령어 입력 후 DockerHub의 username과 password 입력
docker login
Docker Image 빌드
docker build --tag ss0510s/jenkins:latest .
docker push ss0510s/jenkins:latest
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 페이지 접속 [url]:8080
Jenkins에서 관리자 암호 확인하여 접속
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
Install suggested plugins
를 선택하여 플러그인 설치 후 관리자 계정 생성
# 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 파일에서 설정
SSH Username with private key
로 설정Enter directly
체크Add
클릭