GitLab, Jenkins, Harbor, ArgoCD로 CI/CD 구축하기 (1)

림예·2024년 9월 5일
0
post-thumbnail

Jenkins

Dockerfile

FROM jenkins/jenkins:lts
USER jenkins

container로 jenkins 실행

sudo docker run -d \
--env JENKINS_OPTS=--httpPort=8080 \
--env JAVA_OPTS=-Xmx2g \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \
-p 8080:8080 \
-p 50000:50000 \
-u root -v jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker-compose:/usr/bin/docker-compose \
-u jenkins \
--name custom-jenkins jenkins/jenkins:lts
  • 보안상 root 대신 jenkins user로 실행
  • 호스트의 Docker 소켓을 컨테이너에 마운트하여 Docker 데몬을 공유



도커 그룹에 jenkins user 추가

docker exec -u 0 jenkins groupadd -g 991 docker
docker exec -u 0 jenkins usermod -aG 991 jenkins
docker cp /usr/bin/docker custom-jenkins:/usr/bin/docker
  • 991은 실제 본인의 jenkins id로 변경해서 적용해야 함


jenkins 재실행

docker restart jenkins

Jenkins 초기 비밀번호 확인

cat /var/lib/docker/volumes/jenkins_home/_data/secrets/initialAdminPassword




SonarQube


Gitlab Personal Access Token 발급



sonar project 생성



Jenkins CI 설정



코드 레포지토리에 sonar-project.properties 파일 추가



sonar token credential 추가



sonar 시스템 설정



스캐너 도구 추가




분산 빌드

  • systemctl status docker 명령어로 데몬 설정 파일 위치 확인

  • 설정 파일에서 ‘–H tcp://0.0.0.0:4243’ 설정 추가
  • 저장하고 빠져나와 다음 명령어 실행
systemctl daemon-reload 
systemctl restart docker

Docker 플러그인 설치

  • Docker 플러그인 설치 후 Docker 목록이 생성됨

Docker 호스트 구성



Container Agent 구성

  • 저는 spring을 사용했기 때문에 gradle로 작성했습니다

Docker Agent Template 구성에서 한참 아래쪽에 Pull Strategy항목 Never Pull 선택




profile
Think big 🌏

0개의 댓글