Tekies Community 백엔드 만들기 CI/CD -3

노문택·2022년 3월 12일
0

젠킨스로 수동설치 및 나머지 과정을 거쳐두된다..

하지만 도커로 설치할것이다..

님 왜 도커로 젠킨스 깔아욤? WHY?

도커 => 운영체제마다 명령어가다른데 영향을 안받음

=> 이게 어때서요?

EX ) 최신버전 A 올드버전 B에 파일을 각각 설치했음
그러나 A에서 에러가남 ?

원인은 ?

  • 최신기능 지원 X
  • 업데이트 코드 문제
  • 업데이트 버전의 문제
  • 의존 라이브러리의 문제

그러면 운영기록을 확인해야됨
이떄 도움을 줄수있는게 도커임!!

또한 운영체제에 영향을 안받아서 옮기는작업에서도 좋음 + 개발환경 동기화의 이점

이러한 도커를 관리해주는 쿠버네티스 기술을 함께 쓰긴하는데 일단은 도커로 젠킨스 깔고 자동빌드 하는 과정을 진행할것이다..

짤막하게 도커 VS 쿠버네티스

도커는 1컨테이너 쿠버네티스는 대량 컨테이너
즉 여러개의 도커를 관리해주는게 쿠버네티스라고 보는것

그럼 이제 도커부터 설치하도록 하자..

엥 도커는 뭐고 도커 컴포즈느 머에요?

도커는 말그대로 우리가아는 도커고 도커 컴포즈는 여러개 컨테이너를 실행할수있는 툴이라고한다.. 아무튼 이거 깔아야함 ㅇㅇ

왜냐면 도커로 MYSQL도 올리고 젠킨스도 올리고 다할꺼기때문에..

도커와 도커 컴포스를 설치해보자

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common

해당 명령어를 통해 curl , apt-transport-https ca-certificates, software-properties-common 을 설치해준다.

레포지터리 추가를 해준다

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

그리고 업데이트를 진행

sudo apt update
apt-cache policy docker-ce

이제 설치 ㄱㄱ

sudo apt install docker-ce

완료되었다면 확인해보기

sudo systemctl status docker

그럼이어서 docker compose를 설치해보자

https://github.com/docker/compose/releases
여기서 최신버전 확인하기
필자는 2.3.3 버전이 최신ㅇ라 2.3.3으로 깖

sudo curl -L https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

그다음 권한설정

sudo chmod +x /usr/local/bin/docker-compose

버전확인

docker-compose --version

마무리설정

sudo usermod -aG docker $USER

이제 진짜진짜젠킨스설치하기

이미지로 받아와서 컴포스로 켜보자!

왜 굳이 도커컴포스 쓰고 개고생하나요 ㅠㅠ

도커 컴포스로 여러개 컨테이너 키기위해 그리고 다른환경에서도 그대로 갖다쓰는 환경을 만들기위해서 이미지 파일로가지고있고 COMPOSE파일 문서를 수정하면 그냥 그대로 복사해가면 그대로 환경복사가 가능 이게 이 도커를 쓰는 이유임

먼저 경로를 만들건데

docker
|-- jenkins
  |-- jenkins_home
  |-- docker-compose.yml

구조로 만들것이다..

docker compose 구문에 volumes를 jenkins_home 을설정해줄거기에

chmod-R 777 jenkins_home

바꿔주기

아래 스샷은 중간에 뻘짓한스샷이긴한데 차례대로입력
후 진행

mkdir docker
cd docker
mkdir jenkins
cd jenkins
mkdir jenkins_home
vi docker-compose.yml

까지하면 docker-compose.yml작성하는게 나올것이다..
그러면 다음과같이입력해준다.

version: '2'

services:
  jenkins:
    image: 'jenkins/jenkins:latest'
    container_name: 'jenkins'
    restart: always
    ports:
      - '8100:8080'
      - '50100:50000'
    expose:
      - '8080'
      - '50000'
    volumes:
      - './jenkins_home:/var/jenkins_home'
    environment:
      TZ: "Asia/Seoul"
networks:
  default:
    external:
      name: devops

설명을 하자면 volume은 저장할공간 그리고 port 와 expose는 포트번호관련
networks는 devops라는 이름의 네트워크를 쓸것이다라는 뜻이다.

마지막으로 아까쓴 권한까지 주면 다음과같이된다.

아까 설정해준 네트워크까지 추가로 설정 ㄱㄱ

sudo docker network create devops

로 확인가능

sudo docker network ls

docker compose 실행하기

sudo docker-compose up -d

엥? 설치도안햇는데 어케실행해요 ㅡㅡ

자동으로설치해준다 다음ㅌ처럼

다운완료시

그러면 아까 설정해준 포트번호 8100:8080
즉 8100으로 접속해주기

아이피는 본인 local에서작업햇으,면 localhost지만
필자는 전부터 ec2 엘라스틱 ip 써서 거길로접속하면된다..
http://탄력적 아이피주소:8100
했는데

헉 왜그럴까 햇는데

탄력적 ip가 틀린걸까? 라고생각햇다면..그전에
초기세팅에 우리가 포트을 안열어줫다..
ec2 보안그룹이동해서 인바운드규칙수정을해줘야된다.

근데 앞으로 포트열때마다 해줘야되는데 필자는 어차피 백엔드랑 젠킨스 그리고 DB 정도 ?? 할꺼기때문에 3개정도여서 그때마다 수정할것인데 여러개의 컨테이너를 사용한다면 일정구간을 열어두는게 편하긴하다 ㅇㅇ

아무튼 바꾸고 다시접속 ㄱ

ㅎㅇㅎㅇ 반가워젠킨스야!! 이이후부터는 포스팅이 길어져 다음에 하도록하자

profile
노력하는 뚠뚠이

0개의 댓글