2025. 5. 16. 16:07ใ์นดํ ๊ณ ๋ฆฌ ์์
๐ GitHub → Jenkins → Docker ์๋๋ฐฐํฌ ๊ตฌ์ถ๊ธฐ
-ํ์คํ To-Do List ํ๋ก์ ํธ-
https://github.com/raisedeveloper/Svelte-todo-app-docker_compose/
1. ํ๋ก์ ํธ ๊ฐ์
์ด๋ฒ ํ๋ก์ ํธ๋ ํ๋ก ํธ์๋(Svelte), ๋ฐฑ์๋(PHP), ๋ฐ์ดํฐ๋ฒ ์ด์ค(MySQL)๋ก ๊ตฌ์ฑ๋ ํ์คํ To-Do List ์ ํ๋ฆฌ์ผ์ด์
์
Docker Compose๋ก ํตํฉ ๋ฐฐํฌํ๊ณ ,
GitHub Webhook + Jenkins๋ฅผ ์ฐ๋ํด Push ์ ์๋์ผ๋ก ๋น๋ & ๋ฐฐํฌ๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ฌ๋ก์
๋๋ค.
XAMPP ๊ฐ์ ๋ก์ปฌ ์๋ฒ ์์ด,
Docker ๊ธฐ๋ฐ ๊ฐ๋ฐ & ์ด์ ํ๊ฒฝ์ ํต์ผํ๊ณ
Jenkins๋ฅผ ํตํด Push → ๋น๋ & ๋ฐฐํฌ๊น์ง ์๋ํ๋ DevOps ํ๊ฒฝ์ ๊ตฌํํ์ต๋๋ค.
2. ์ ์ฒด ํ๋ฆ๋
GitHub Push
↓ (Webhook Trigger)
Jenkins ๋น๋ ํธ๋ฆฌ๊ฑฐ
↓ (SCM Polling & Git Pull)
Docker Compose Build & Up
↓
๋ฐฐํฌ ์๋ฃ
โจ ํต์ฌ ํฌ์ธํธ:
- GitHub → Webhook → Jenkins ์๋ ํธ๋ฆฌ๊ฑฐ
- Jenkins Freestyle Job์ผ๋ก ๋น๋/๋ฐฐํฌ ์๋ํ
- Docker Compose๋ก ์๋น์ค ์ผ๊ด ๋ฐฐํฌ
3. ๊ตฌ์ถ ์คํ
- GitHub Webhook + ngrok ํฐ๋๋ง (๋ก์ปฌ ๊ฐ๋ฐํ๊ฒฝ ์ฐ๋)
- Jenkins Freestyle Job ์๋ํ
- Git SCM Polling ๊ธฐ๋ฐ ๋ณ๊ฒฝ์ฌํญ ๊ฐ์ง
- Docker Compose๋ก ํ๋ก ํธ์๋/๋ฐฑ์๋/DB ํตํฉ ๋ฐฐํฌ
4. Jenkins ์๋๋ฐฐํฌ ์ค์
โ Jenkins Freestyle Job ๊ตฌ์ฑ:
- Source Code Management
- GitHub ๋ ํฌ์งํ ๋ฆฌ ์ฐ๊ฒฐ
- Build Triggers
- GitHub hook trigger for GITScm polling ํ์ฑํ
- Build Steps
- Execute Shell:
docker-compose down || true
docker-compose build
docker-compose up -d
โ ๊ฒฐ๊ณผ:
- GitHub์์ Pushํ๋ฉด Jenkins๊ฐ ์๋์ผ๋ก ๋น๋/๋ฐฐํฌ๋ฅผ ์ํ
- Docker Compose๋ก ํตํฉ๋ ์๋น์ค ๋ฐฐํฌ ์๋ํ
5. ์ค์ ๋ฐฐํฌ ๊ณผ์ (์ฝ์ ์ถ๋ ฅ ์์)
Cloning repository https://github.com/raisedeveloper/Svelte-todo-app-docker_compose
Checking out Revision (์ปค๋ฐ ํด์)
[BUILD] Docker ์ด๋ฏธ์ง ๋น๋ ์ค...
[DEPLOY] Docker ์ปจํ
์ด๋ ์คํ ์ค...
Finished: SUCCESS
6. ๋ง๋ฌด๋ฆฌ (๋ฐฐ์ด์ )
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด
- GitHub → Jenkins → Docker ๋ฐฐํฌ ์๋ํ์ ์ ์ฒด ํ๋ฆ
- Webhook ๊ธฐ๋ฐ ํธ๋ฆฌ๊ฑฐ ๋ฐฉ์
- Freestyle Job์ผ๋ก ๊ฐ๋จํ๊ฒ ๊ตฌ์ถํ๋ CI/CD
๋ฅผ ์ง์ ๊ตฌ์ถํด๋ณด๋ฉฐ ์ค๋ฌดํ DevOps ํ๊ฒฝ์ ๊ฒฝํํ ์ ์์์ต๋๋ค.
์๋ฒฝํ ์๋ํ๋ ์๋์ด๋, Push ์ ๋ฐ๋ก ๋ฐ์๋๋ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ง์ ๋ง๋๋ ๊ฒ ์์ฒด๊ฐ ํฐ ์ํ์ด์์ต๋๋ค.