해당 과정은 tekiescommunity backend ci/cd를 하면서 한번 해보았다 그러나 그때는 대강 짚고넘어갔지만 여기서 자세히 다루도록한다..
docker compose 사용해서 jenkins 실행해보기
위에 링크의 포스트에서도 나와있지만 그래도 중요하기에 한번더! -> 한번에 모든 컨테이너 실행 및 순서 세팅이가능
추가적으로 server가 여러개인 경우 compose.yml 파일만 옮기고 함으로써 쉽게 클라우드 환경이 가능하다! 그래서씀!!!
그럼 도커 와 도커 compose 설치해보기
sudo apt update
sudo apt install apt-transport-https ca-certificates curl 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
차례대로 입력 도스창 스샷은 따로 첨부 X
sudo systemctl status docker
이 명령어로 확인만 해보자
잘돌아가고있으면 docker compose 마저설치 ㄱ
2.4.1 최신버전으로 깔아봅시다. (https://github.com/docker/compose/releases) 여기서 확인가능
sudo curl -L https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo usermod -aG docker $USER
차례대로 입력해주기 세팅에 관련된부분임
docker-compose --version
버전 확인해보기
경로는 다음과 같이만들기
docker
|-- docker-compose.yml
|-- nginx
|-- mysql
|-- jenkins
sudo chmod -R 777 nginx
sudo chmod -R 777 mysql
sudo chmod -R 777 jenkins
로컬 볼륨으로 저장할 공간 권한 미리주기
docker-compose.yml을 다음과 같이 작성해준다.
version: '2'
services:
mysql_db:
image: mysql:5.7
container_name: mysql-db
environment:
- MYSQL_DATABASE=ssam
- MYSQL_ROOT_PASSWORD=ssafya403hanlim
- TZ=Asia/Seoul
ports:
- 3306:3306
volumes:
- ./mysql:/var/lib/mysql # db 볼륨 처리
sudo docker-compose up -d
sudo docker ps -a
mysql volume에도 잘저장되어있따.
추가적으로 jenkins와 nginx도 해주자
jenkins:
image: 'jenkins/jenkins:lts-jdk8'
container_name: 'jenkins'
ports:
- '5000:5000'
- "50010:50000"
expose:
- "8080"
- "50000"
volumes:
- '/var/jenkins_home:/var/jenkins_home'
- '/var/run/docker.sock:/var/run/docker.sock'
environment:
TZ: "Asia/Seoul"
nginx:
image: nginx:1.21.5-alpine
ports:
- 80:80
volumes:
- ./proxy/nginx.conf:/etc/nginx/nginx.conf
container_name: myweb-proxy
젠킨스 기본포트가 8080 으로 되어있는데 5000: 5000 하면 에러남
그냥 jenkins를 자체를 받으면 아래에서 수정하면되고
sudo vim /etc/sysconfig/jenkins
docker compose버전은 잘모르겠다 ㅎㅎ;; 그냥 ports를 5000:8080 으로 사용함
jenkins:
restart: always
container_name: jenkins
image: jenkins/jenkins
ports:
- "8080:8080"
volumes:
- "./jenkins:/var/jenkins_home"
여러가지 변경후 총 합본
version: '3.1'
services:
mysql_db:
image: mysql:5.7
container_name: mysql-db
environment:
- MYSQL_DATABASE=ssam
- MYSQL_ROOT_PASSWORD=ssafya403hanlim
- TZ=Asia/Seoul
ports:
- 3306:3306
volumes:
- ./mysql:/var/lib/mysql # db 볼륨 처리
jenkins:
restart: always
container_name: jenkins
image: jenkins/jenkins
ports:
- "8080:8080"
volumes:
- "./jenkins:/var/jenkins_home"
nginx:
image: nginx:1.21.5-alpine
ports:
- 80:80
volumes:
- ./proxy/nginx.conf:/etc/nginx/nginx.conf
container_name: myweb-proxy
실행 ㄱ
sudo docker-compose up -d
휴;; 이제 다됨..
추가적인 설정은 알아서 하도록 해보자 ㅎㅎ;; docker-compose로 작성해두면 쉽게 클라우드 환경에서 복사가 가능!!
게다가 volume 설정으로 그냥 storage까지 가능하니 클라우드가 좀더 편해졋다 ㅎㅎ;; 아무튼 여까지