Jenkins + Docker To-Do ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•๊ธฐ

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 ๊ตฌ์„ฑ:

  1. Source Code Management
    • GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์—ฐ๊ฒฐ
  2. Build Triggers
    • GitHub hook trigger for GITScm polling ํ™œ์„ฑํ™”
  3. 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 ์‹œ ๋ฐ”๋กœ ๋ฐ˜์˜๋˜๋Š” ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ํฐ ์ˆ˜ํ™•์ด์—ˆ์Šต๋‹ˆ๋‹ค.