_silver 2024. 12. 20. 11:28

๐Ÿ“ CI/CD๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1. CI/CD์˜ ์ •์˜

- Continuous Integration / Continuous Deployment(Delivery)์˜ ์•ฝ์ž๋กœ,

- ์ง€์†์ ์ธ ํ†ตํ•ฉ, ์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต, ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋”๋ณด๊ธฐ

1. ์ง€์†์ ์ธ ํ†ตํ•ฉ(Continuous Integration)

- ์ž๋™ํ™”๋œ ๋นŒ๋“œ์™€ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

- ์•ˆ์ •์ ์ธ ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ‘๊ฑฐ๋ฆ„์ด๋‹ค.

 

2. ์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต

 

3. ์ง€์†์ ์ธ ๋ฐฐํฌ

- ๋ฐฐ์ดˆ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๋ฐฐํฌ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์ฝ”๋“œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋น ๋ฅด๊ฒŒ ์ง€์†์ ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

 

2. ๊ณผ์ •

- ์ฝ”๋“œ ์ž‘์„ฑ : ๊ฐœ๋ฐœ์ž๋“ค์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ €์žฅ์†Œ(repository)์— ์—…๋„๋ฅด

- ๋นŒ๋“œ : ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  ** ๋นŒ๋“œ๋Š” ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

- ํ…Œ์ŠคํŠธ : ๋นŒ๋“œ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋Œ€์ƒ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  ** ํ…Œ์ŠคํŠธ๋Š” ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

- ๋ฐฐํฌ : ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฐฐํฌํ•œ๋‹ค.

  ** ๋ฐฐํฌ๋Š” ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.


 

๐Ÿ“ Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

 

1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๊ฐ€ ํŽธํ•˜๋‹ค.

- Docker Container ๋‚ด๋ถ€์—์„œ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ OS์—๋Š” ์˜ํ–ฅ์„ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค.
- CI/CD์—์„œ ์ง€์†์ ์ธ ํ†ตํ•ฉ๊ณผ ์ •์˜ ํ…Œ์ŠคํŠธ์—์„œ Docker๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

- ์–ด๋–ค ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋”๋ผ๋„ ๊ฐ™์€ ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‘œ์ค€ํ™”๋œ ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋…๋ฆฝ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค.

3. Docker๊ฐ€ ๊ฐ€์ƒํ™”์—์„œ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์˜ ์œ„์น˜์— ์žˆ๋‹ค.


 

๐Ÿš‘ Docker Container ์‹คํ–‰ ํ…Œ์ŠคํŠธ : Docker Container ๊ด€๋ จ ๋ช…๋ น์–ด

 


 

๐Ÿ“ Docker Image ๊ด€๋ฆฌ

1. Docker Image ์ดํ•ด

- Docker Container ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์ด๋ฏธ์ง€๋Š” Container ๋Ÿฐํƒ€์ž„์— ํ•„์š”ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์„ค์ • ๊ฐ’ ๋“ฑ์„ ํฌํ•จํ•˜๊ณ ,

๋ณ€๊ฒฝ๋˜๋Š” ์ƒํƒœ๊ฐ’์„ ๋ณด์œ ํ•˜์ง€ ์•Š๊ณ (stateless) ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

- ์ƒํƒœ ์ €์žฅ ์—†์Œ(Stateless) : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—,

๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ผํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋ถˆ๋ณ€์„ฑ(Immutable) : ์ด๋ฏธ์ง€๊ฐ€ ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

- ๋„์ปค ์ด๋ฏธ์ง€๋Š” ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์šฉ๋Ÿ‰์ด ์ž‘์œผ๋ฉฐ, ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ์ƒ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค.

 

2. Docker ์ด๋ฏธ์ง€ ๋‚ด๋ ค๋ฐ›๋Š” ๊ณผ์ •

- hub.docker.com ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณต๋ฐ›๊ฑฐ๋‚˜, ํ•ด๋‹น ์‚ฌ์ดํŠธ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

docker pull : Docker ์ด๋ฏธ์ง€ ๋‚ด๋ ค๋ฐ›๊ธฐ

 

 

๐Ÿ“š ๊ฒฐ๋ก ์ ์œผ๋กœ, Docker Image๋Š” ๋ฏธ๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ธฐํƒ€ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ •์˜, ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์€ OS ํŒŒ์ผ์ด๋‹ค.

 


๐Ÿš‘ Docker Image Pull ํ…Œ์ŠคํŠธ : Docker Image ๊ด€๋ จ ๋ช…๋ น์–ด