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에서 관리자 암호 확인하여 접속
cat /var/jenkins_home/secrets/initialAdminPassword- docker exec -it jenkins /bin/bash
- 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 클릭
'Infra' 카테고리의 다른 글
| [Infra] Nginx 설정 (0) | 2024.05.25 |
|---|---|
| [Infra] Docker-Compose 를 통한 DB 구축 (0) | 2024.05.25 |
| [Infra] Docker 설치 (0) | 2024.05.25 |
| [Infra] Jenkins - GitLab 연동 (0) | 2024.05.25 |
| [Infra] Ubuntu 서버 세팅 (0) | 2024.05.25 |