
docker에 Jenkins 와 tomcat 올라간 상태
docker exec -it jenkins-server bash
cd /var/jenkins_home/workspace/My-Second-Project


빌드해서 jar(결과파일) 만들려고 maven repository 하는 것임
cd C:\Work\git\cicd-web-project
mvn clean compile package -DskipTests=true
target 디렉토리에 var 파일생성 확인



배치 클릭
=> TOMCAT 이라는 WAS 서버에 배포된 것임!


docker exec -it tomcat bash
cd webapps/
ls -al

수작업으로 수정 및 재배포
- 소스코드 변경
- 다시 빌드 (mvn clean compile package -DskipTests=true)
- Tomcat Manager App 가서 이전 war 파일 배치 중지 + 제거
- 새로 빌드된 war 파일 배치
수작업 배포 -> downtime이 생긴다
=> Jenkins에서 자동화 해보자 ! ❤️

docker network inspect bridge

빌드까지 하면 war 파일 얻을 수 있는데
이 war 파일로 무언갈(배포 등) 하려면
빌드 후 조치에 설정해줘야 한다.







=> 배포 잘 됨!!
이제 깃허브에 코드만 바꾸고 커밋했는데
빌드 버튼만 누르면 바로 반영됨 🔽

❓ My-Third-Project 에서 CI/CD가 쓰였을까?
❤️ YES! ✅
CI: git 코드 maven 테스트 -> 빌드하는 과정
- test 과정
- compile : 빌드
- package : war 파일 만들기
CD: tomcat 에 배포하는 과정
Jenkins + Docker runtime
(초록색 터미널)
MacOS 🔽
https://hub.docker.com/r/edowon0623/docker-server
Windows 🔽
https://hub.docker.com/r/edowon0623/docker
docker pull edowon0623/docker:no_iptables
docker run --privileged -itd --name docker-server -p 10022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker:no_iptables /usr/sbin/init
ssh root@127.0.0.1 -p 10022 💫💫💫💫💫
P@ssw0rd
-> [root@641fc028e14f ~]#
ssh client
terminus 설치
처음 서버 생성 후 접속 시 docker client만 존재
docker server 시작 필요 🔽
한 번만 하면 됨
systemctl enable docker
도커 기동
systemctl start docker
도커 상태 보기
systemctl status docker

docker version

다른 윈도우 터미널 (노란색) 에서
docker run --privileged -itd --name tomcat-server -p 20022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker:no_iptables /usr/sbin/init
리눅스 ssh client 접속
ssh root@127.0.0.1 -p 20022

노란색을 초록색에 띄우려고 한다 !
초록색 hostname -i -> 172.17.0.4
노란색 hostname -i -> 172.17.0.5
노란색에서 ssh root@172.17.0.4
[root@641fc028e14f ~]# -> 초록색으로 접속되었다 !! 즉, 어느 PC에서나 접근 가능하다
Jenkins 파이프라인 구성
CI
컨테이너1에서 war 파일로 Docker BuildCD
컨테이너2에서 Docker Image pull + runMy-Docker-Project 만들자 (My-Third-Project 가져오기)
dashboard > Jenkins 관리> System






; : 명령어의 끝 의미
[root@641fc028e14f ~]# docker images

여기까지 CI 작업 !!!