CI/CDλ κ°λ° κ²°κ³Όλ¬Όμ λν΄ μ§μμ μΈ ν΅ν©κ³Ό μ§μμ μΈ λ°°ν¬λ₯Ό νλ νλ‘μΈμ€μ΄λ©° ν΅ν©, λΉλ, ν μ€νΈ, λ°°ν¬ μ κ³Όμ μ λν μλνλ₯Ό κ±°μΉλ€.
CIμμλ μ»΄νμΌ, ν μ€νΈ, ν¨ν€μ§ μμ μ΄ ν¬ν¨λκ³
CDλ CIμ μν΄ ν¨ν€μ§λ κ²μ λ°°ν¬νλ μμ μ νκ² λλ€.
νΉν λΆμ°λ μλ²μμ μ€νλλ MSA νκ²½μμμ μλν λ°°ν¬λ λ³΄λ€ ν¨μ¨μ μΈ μμ μ ν μ μκ² ν΄μ€λ€.
CI/CD WorkFlow
- κ°λ°μκ° git commitμ νλ€.
- CI/CD λꡬ(Jenkins)κ° SCM(git)μ μ μ₯λ μ½λλ₯Ό λΆλ¬μ¨λ€.
- CI/CD λκ΅¬κ° μμ€μ½λμ build, test, packageλ₯Ό μΌκ΄μ μΌλ‘ μ²λ¦¬νλ€.
- μ€ν¨ μ fail, μ±κ³΅ μ pass
- μλ²μ λ°°ν¬νλ€.
μμΌλ‘ μμ κ°μ κ³Όμ μ μ€νν΄ λ³Ό κ²μ΄λ€ !
Jenkins
π· Docker Containerλ‘ Jenkins μ€μΉνκΈ°
μ΄λ―Έμ§ λ€μ΄λ‘λ : docker pull jenkins/jenkins
Jenkins μ€ν : docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk17
Jenkinsλ₯Ό μ€ννκ³ 127.0.0.1:8080μ μ μνλ©΄ ν¨μ€μλλ₯Ό μ λ ₯νλΌλ μ°½μ΄ λ¬λ€.
ν¨μ€μλλ docker logs jenkins-server
λ‘κ·Έμμ νμΈν μ μλ€.
ν¨μ€μλλ₯Ό μ λ ₯νλ©΄ pluginμ μ€μΉν μ μκ³ , μ€μΉ νμλ κ³μ μ μμ±νλΌκ³ νλ€.
κ³μ κΉμ§ μμ±νλ©΄ μμ κ°μ νλ©΄μ΄ λμ¨λ€.
μΌμͺ½ μλ¨μ μλ itemμ Jenkinsμμ μ¬μ©νκ³ μλ μμ μ μ΅μλ¨μμ΄λ€.
Jenkins κ΄λ¦¬ λ©λ΄μμλ Maven, Gradle, Git, JDK λ±μ μ€μ ν μ μλ€.
π‘ λ§μ½ macOS νκ²½μμ Jenkinsλ₯Ό λ³λλ‘ μ€μΉνλ€λ©΄ JDK κ²½λ‘λ₯Ό μ€μ ν΄μΌνλ€.
(λλ Docker ννλ‘ Jenkinsλ₯Ό κΈ°λνκΈ° λλ¬Έμ λ°λ‘ μ€μ νμμμ !)
πΉ Item (νλ‘μ νΈ) μμ±νκΈ°
μμμ μΈκΈν μΌμͺ½ μλ¨μ itemμ μμ±νλ €λ©΄ '+ μλ‘μ΄ item' λ©λ΄λ₯Ό ν΅ν΄μ μμ±νλ©΄ λλ€.
'μ§κΈ λΉλ'λ₯Ό λλ₯΄λ©΄ νλ¨μ Build History κ²°κ³Όλ₯Ό νμΈν μ μκ³ ,
μ½μ λ΄μ© λν νμΈν μ μλ€.
λ€μμλ Tomcat μλ²μ Docker 컨ν μ΄λμ λ°°ν¬νλ κ³Όμ μ μμ±ν΄λ³΄κ² λ€ !
μ°Έκ³ μλ£
https://github.com/jenkinsci/docker
'DevOps > βοΈ CI&CD' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[βοΈCI/CD] GitHub Actions - AWS CodeDeploy & S3 μ΄μ©ν΄μ λ°°ν¬ (0) | 2024.04.22 |
---|---|
[βοΈ CI/CD] CI/CDμ GitHub Actions νμ©λ² (1) | 2024.04.19 |
[βοΈ CI/CD] Jenkinsλ₯Ό μ΄μ©ν΄ λ°°ν¬νκΈ° 2 - λ€λ₯Έ μλ² (0) | 2024.01.26 |
[βοΈ CI/CD] Jenkinsλ₯Ό μ΄μ©ν΄ λ°°ν¬νκΈ° 1 - λ‘컬 μλ² (1) | 2024.01.24 |