๐Ÿ“’ [ TIL ] 2022.07.11_58์ผ์ฐจ # Docker (3)

๋ฌธ๋ช…์ฃผยท2022๋…„ 7์›” 11์ผ
0
post-thumbnail

[ 2022-07-11 (์›”) ์˜ค๋Š˜์˜ TIL ]

[ Today Learn ]

  • CI/CD ๊ฐœ๋…
  • github action์˜ ์ •์˜์™€ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

โœ๏ธ ๋‚ด๊ฐ€ ๋ฐฐ์šด๊ฒƒ, ์–ป์€๊ฒƒ

* CI/CD ๊ฐœ๋…

โ“ CI ๋ž€ ?
Continuous Integration์€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•จ๊ป˜ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ์„œ CI๋ฅผ ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ •๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋˜์–ด ๊ณต์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉ๋˜๊ธฐ๋•Œ๋ฌธ์— ์„œ๋กœ์˜ ์ž‘์—…์˜์—ญ์ด ์ถฉ๋Œ๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์–ด์ ธ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ ์ „์— ์ด ๋ฐฐํฌ๋ฅผ ํ•ด๋„ ๊ดœ์ฐฎ์€ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ CI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โ“ CD ๋ž€ ?
Continuous Deployment๋Š” ๋ฐ˜์˜๋œ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์‹ค์ œ ์„œ๋น„์Šค์—๋„ ์ž๋™์œผ๋กœ ๋ฐ˜์˜์ด ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ์„œ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Continuous Deployment ๊ณผ์ •์ด ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค.

* github action์„ ์‚ฌ์šฉํ•˜์—ฌ CI ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

โ“ github action ๋ž€ ?
Github ์ €์žฅ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ Workflow๋ฅผ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด Github์—์„œ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” CI/CD ๋„๊ตฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

* github action ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์•Œ์•„๋ณด๊ธฐ
github action๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋ณธ 6๊ฐ€์ง€ ์šฉ์–ด

1. `Workflows`: ์ž๋™ํ™” ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ณผ์ •๋“ค
- ํ•œ๊ฐœ ๋˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ job์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, event์— ์˜ํ•ด์„œ ์‹œ์ž‘๋œ๋‹ค.
- ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฆด๋ฆฌ์ฆˆ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
2. `Events` : workflow๋ฅผ trigger๋˜๋Š” ํ–‰๋™๋“ค
- push, pull request, cronjob ๋“ฑ์ด ์žˆ๋‹ค.
3. `Jobs`: ๋™์ผํ•œ runner์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ step์˜ ๋ชจ์ž„
4. `Steps`: job์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•œ๊ฐœ์˜ ์ปค๋งจ๋“œ๋กœ action์ด๊ฑฐ๋‚˜ shell command๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
5. `Actions`: ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ •์˜๋œ ์ปค๋งจ๋“œ์˜ ๋ชจ์Œ
6. `Runner`: Job์ด ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ
profile
ํ•˜๋ฃจ ํ•œ๊ฑธ์Œ์”ฉ ๊พธ์ค€ํžˆ ๋‚˜์•„๊ฐ€๋Š” ๊ฐœ๋ฐœ์ž๐Ÿ™†โ€โ™€๏ธ https://github.com/Moonmooj

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด