studies/Back-end

[Spring boot] μŠ€ν”„λ§ λΆ€νŠΈ ν”„λ‘œμ νŠΈ Jar 파일둜 Docker 이미지 μƒμ„±ν•˜κΈ°

Vada Kim 2021. 8. 6. 00:11
728x90
λ°˜μ‘ν˜•

μŠ€ν”„λ§ λΆ€νŠΈ ν”„λ‘œμ νŠΈ Docker 이미지 λΉŒλ“œ

Spring boot ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•œ ν›„ ν”„λ‘œμ νŠΈ jar νŒŒμΌμ„ 톡해 도컀 μ»¨ν…Œμ΄λ„ˆλ₯Ό λ„μš°κΈ° μœ„ν•΄ 이미지λ₯Ό μƒμ„±ν•˜λŠ” 방법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


 

1. pom.xml 파일 μž‘μ„±

<build> νƒœκ·Έ μ•ˆμ— <finalName> νƒœκ·Έλ₯Ό μΆ”κ°€ν•˜κ³ , 생성할 'ν”„λ‘œμ νŠΈ jar 파일'의 이름을 ν™•μž₯자 없이 μΆ”κ°€ν•΄μ€€λ‹€.

board-springboot.jar νŒŒμΌμ„ 생성할 μ˜ˆμ •

 

2. Dockerfile 생성

ν”„λ‘œμ νŠΈ 폴더 λ‚΄ μ΅œμƒμœ„ κ²½λ‘œμ— "Dockerfile"μ΄λΌλŠ” μ΄λ¦„μ˜ νŒŒμΌμ„ μƒμ„±ν•œλ‹€.

포트 λ²ˆν˜ΈλŠ” application.properties νŒŒμΌμ—μ„œ 확인 κ°€λŠ₯ν•˜λ‹€.

ENTRYPOINT λ³€μˆ˜μ— 담을 λͺ…λ Ήμ–΄ 인자의 λ§ˆμ§€λ§‰μ—λŠ” pom.xml에 μž‘μ„±ν–ˆλ˜ ν”„λ‘œμ νŠΈ jar 파일의 κ²½λ‘œμ™€ 파일λͺ…을 λ„£λŠ”λ‹€.

 

 

3. Jar 파일 생성

μ™Όμͺ½ νŠΈλ¦¬μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό μš°ν΄λ¦­ν•˜κ³  Run as>Maven install ν΄λ¦­ν•œλ‹€. jar 파일 생성을 ν™•μΈν•œλ‹€.

 

 

4. Docker toolbox μ„€μΉ˜

Docker 터미널 μ΄μš©μ„ μœ„ν•΄ toolbox μ„€μΉ˜ν•œλ‹€. (μ„€μΉ˜κ³Όμ •μ‹œ μ„ΈνŒ…κ°’μ€ λŒ€λΆ€λΆ„ κΈ°λ³Έκ°’μœΌλ‘œ ν•΄μ£Όλ©΄ λœλ‹€)

https://github.com/docker/toolbox/releases/tag/v19.03.1

 

Release v19.03.1 · docker/toolbox

Please ensure that your system has all of the latest updates before attempting the installation. In some cases, this will require a reboot. If you run into issues creating VMs, you may need to un...

github.com

 

(μ—λŸ¬ λ°©μ§€1) DOCKER κ΄€λ ¨ μ‹œμŠ€ν…œ ν™˜κ²½ λ³€μˆ˜ μΆ”κ°€

 

(μ—λŸ¬ λ°©μ§€2) μ œμ–΄νŒ ν”„λ‘œκ·Έλž¨ κΈ°λŠ₯ 끄기 : Hyper-V 체크 ν•΄μ œ

 

 

docker toolbox install ν›„ μ„€μΉ˜λœ 3개의 ν”„λ‘œκ·Έλž¨ 쀑 Docker quickstart terminal μ‹€ν–‰ν•œλ‹€.

ν•œμ°Έμ„ 기닀리면 터미널 창이 μ—΄λ¦°λ‹€.

 

β–Ό μŠ€ν”„λ§λΆ€νŠΈ ν”„λ‘œμ νŠΈκ°€ μœ„μΉ˜ν•œ 경둜둜 μ΄λ™ν•œ ν›„, λ‹€μŒ λͺ…λ Ή μž…λ ₯ν•œλ‹€. (λ§ˆμ§€λ§‰μ— 온점 ν•„μˆ˜)

$ docker build -t [μƒμ„±ν•œjar파일λͺ…].jar .

 

β–Ό μ•„λž˜ λͺ…λ ΉμœΌλ‘œ 이미지 생성을 ν™•μΈν•œλ‹€.

$ docker image ls

 


Spring boot ν”„λ‘œμ νŠΈμ—μ„œ jar νŒŒμΌμ„ λ§Œλ“€μ–΄ 도컀 이미지λ₯Ό λΉŒλ“œν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•