๐Ÿ‹ Dockerfile ๊ธฐ์ดˆ (1-3)

hyun_wยท2025๋…„ 8์›” 19์ผ

1. Dockerfile ์ด๋ž€?

  • Docker ์ด๋ฏธ์ง€๋ฅผ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ํ…์ŠคํŠธ ํŒŒ์ผ
  • ์šด์˜์ฒด์ œ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜๊นŒ์ง€์˜ ๋ชจ๋“  ๊ณผ์ •์„ ์ฝ”๋“œํ™”
  • ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ํŒ€ ๊ฐ„ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๋ณด์žฅ

๐Ÿ’ก ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

Dockerfile = ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ

๐Ÿ ํŒŒ์Šคํƒ€ ๋งŒ๋“ค๊ธฐ ๋ ˆ์‹œํ”ผ
1. ๋ฌผ ๋“์ด๊ธฐ (๊ธฐ๋ณธ OS ์ค€๋น„)
2. ์†Œ๊ธˆ ๋„ฃ๊ธฐ (ํ•„์ˆ˜ ํŒจํ‚ค์ง€ ์„ค์น˜)
3. ๋ฉด ๋„ฃ๊ณ  7๋ถ„ ์‚ถ๊ธฐ (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ๋ณต์‚ฌ)
4. ์†Œ์Šค์™€ ํ•จ๊ป˜ ๋ณถ๊ธฐ (์‹คํ–‰ ๋ช…๋ น์–ด ์„ค์ •)

2. Dockerfile vs Docker ์ด๋ฏธ์ง€ vs ์ปจํ…Œ์ด๋„ˆ

๊ตฌ๋ถ„DockerfileDocker ์ด๋ฏธ์ง€์ปจํ…Œ์ด๋„ˆ
์ •์˜์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ช…๋ น์–ด ๋ชจ์Œ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€์ด๋ฏธ์ง€์˜ ์‹คํ–‰ ์ธ์Šคํ„ด์Šค
์ƒํƒœํ…์ŠคํŠธ ํŒŒ์ผ์ฝ๊ธฐ ์ „์šฉ ํ…œํ”Œ๋ฆฟ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค
๋น„์œ ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ์™„์„ฑ๋œ ๋ƒ‰๋™์‹ํ’ˆ์‹ค์ œ ๋จน๊ณ  ์žˆ๋Š” ์Œ์‹
์˜ˆ์‹œDockerfilemyapp:1.0docker run myapp:1.0

3. Dockerfile ์ž‘์„ฑ ๊ทœ์น™

๊ธฐ๋ณธ ์›์น™

  1. ํŒŒ์ผ๋ช…์€ ์ •ํ™•ํžˆ Dockerfile (ํ™•์žฅ์ž ์—†์Œ)
  2. ๋ช…๋ น์–ด๋Š” ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ (FROM, RUN, COPY ๋“ฑ)
  3. #์œผ๋กœ ์ฃผ์„ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  4. ๋ช…๋ น์–ด๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆœ์ฐจ ์‹คํ–‰
  5. ๊ฐ ๋ช…๋ น์–ด๋Š” ์ƒˆ๋กœ์šด ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑ

  1. PowerShell ์‹คํ–‰ ์ •์ฑ… ๋ณ€๊ฒฝ: scoop ์„ค์น˜๋ฅผ ์œ„ํ•ด ์‹คํ–‰ ์ •์ฑ…์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ PowerShell์„ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

  1. Scoop ์„ค์น˜: ์‹คํ–‰ ์ •์ฑ…์„ ๋ณ€๊ฒฝํ•œ ํ›„, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ scoop์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

scoop bucket add java

scoop install openjdk21

scoop reset openjdk21

java --version

3๏ธโƒฃ Gradle Wrapper ์ƒ์„ฑ

# Gradle ์„ค์น˜ (Windows)
scoop install gradle

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