[Spring boot] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Docker ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ Old & New

๋ฐ˜์‘ํ˜•

Spring boot๋กœ ๊ฐœ๋ฐœํ•œ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ์Šคํ„ด์Šค์— ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” WAS๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ Docker ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ Docker ์ด๋ฏธ์ง€๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Spring boot์—์„œ ๊ฐœ๋ฐœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Docker๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Install Docker

๋จผ์ € Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋‚ด ์ปดํ“จํ„ฐ์— Docker๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ Docker๋ฅผ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”.

2016/07/06 - [Infrastructure/Docker] - Docker, ๊ทธ๊ฒƒ์€ ๋ฌด์—‡์ด๊ณ , ์„ค์น˜๋Š” ์–ด๋–ป๊ฒŒํ• ๊นŒ?

 

Docker, ๊ทธ๊ฒƒ์€ ๋ฌด์—‡์ด๊ณ , ์„ค์น˜๋Š” ์–ด๋–ป๊ฒŒํ• ๊นŒ?

์š”์ฆ˜ Docker ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ์ธ๊ธฐ์ž…๋‹ˆ๋‹ค. Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ์•Œ๊ธฐ ์‹œ์ž‘ํ•œ๊ฑด ์ €๋„ ์ž‘๋…„ 10์›”๋ถ€ํ„ฐ์˜€๋Š”๋ฐ, ์ €๋„ ๊ฝค ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. What is Docker? Docker๋ฅผ ๊ฒ€์ƒ‰ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ์•„๋งˆ ํ•œ ๋ฒˆ๏ฟฝ๏ฟฝ

blog.neonkid.xyz

 

 

Create Dockerfile

Docker ์„ค์น˜๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด, ์ด์ œ ๋‚ด๊ฐ€ ๋งŒ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋“ค์–ด ์žˆ๋Š” Docker Image๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Docker Image๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • gradlew ๋ช…๋ น์–ด ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ jar ํŒŒ์ผ๋กœ ๋นŒ๋“œ
  • Dockerfile ์ƒ์„ฑ

Jar ํŒŒ์ผ์€ Docker ์ด๋ฏธ์ง€์—์„œ ๋‚ด๊ฐ€ ๋งŒ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Dockerfile์—์„œ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณ„๋„์˜ ํ™˜๊ฒฝ ์„ค์ •์„ ์ˆ˜๋™์œผ๋กœ ์ง„ํ–‰ํ•  ํ•„์š”์—†์ด ์ž๋™์œผ๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

FROM    openjdk:8-jdk-alpine
RUN     addgroup -S neonkid && adduser -S neonkid -G neonkid
USER    neonkid:neonkid
ARG     JAR_FILE=build/libs/*.jar
COPY    ${JAR_FILE} app.jar
ENTRYPOINT  ["java", "-jar", "/app.jar"]

์„œ๋น„์Šคํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ธฐ๋ฐ˜์ด ๋  ์ด๋ฏธ์ง€๋ฅผ FROM ์˜†์— ์ ์œผ์‹œ๋ฉด ๋˜๋Š”๋ฐ, ๋งŒ์•ฝ ์ˆ˜๋™์œผ๋กœ Java ์„ค์ •์„ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ubuntu, centos ๋“ฑ์˜ ๋ฏธ๋‹ˆ๋ฉ€ ์šด์˜์ฒด์ œ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์…”์•ผ ํ•˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ๊ธฐ๋ณธ ์„ค์ • ๊ฐ’์œผ๋กœ ์ง„ํ–‰ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ openjdk8 ๋ฒ„์ „์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Docker๋Š” root ๊ณ„์ •์—์„œ ์‹คํ–‰์ด๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ ์ž ์›ํ•˜๋Š” ๊ฒฝ์šฐ, adduser ๋ช…๋ น์–ด ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ , USER๋ฅผ ์ด์šฉํ•ด ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์œ„ ๋ฐฉ๋ฒ•์€ Docker ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ๋‹จ์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ๋ฆด ๋•Œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฏธ๋“ค์›จ์–ด ๋“ฑ์„ ๋™์‹œ์— ์šด์˜ํ•  ๋•Œ ์‹คํ–‰ ์˜์—ญ ๊ณต๊ฐ„์„ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด์„œ ๋ณดํ†ต ๋‚˜๋ˆ„๋Š” ํŽธ์ด์ง€๋งŒ, Docker ์ด๋ฏธ์ง€์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์—ฐ์Šต์„ ์œ„ํ•ด ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ด๋Ÿฐ ๊ฒƒ๋„ ์žˆ๋‹ค. ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ง„ํ–‰ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”.

๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋กœ์ ํŠธ์—์„œ jar ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ARG์— ๋„ฃ๊ณ , Docker ์ด๋ฏธ์ง€์— ๋ณต์‚ฌํ•  ์ด๋ฆ„์„ ์ •ํ•ด์ค€ ๋‹ค์Œ ENTRYPOINT์— java ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ์‹คํ–‰ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Docker ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

 

Build Application

IDEA๋ฅผ ์ด์šฉํ•˜์—ฌ Spring boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ๋Š” Run ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ Embedded Tomcat์„ ์ด์šฉํ•ด ๊ฐœ๋ฐœ ์„œ๋ฒ„๋กœ ํ…Œ์ŠคํŠธ ์ •๋„๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, IDEA๊ฐ€ ์•„๋‹Œ ์ผ๋ฐ˜ Gradle ํ™˜๊ฒฝ์„ ์ˆ˜๋™์œผ๋กœ ๋งŒ๋“ค๊ณ  ํ–ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

๋งŒ์•ฝ, Spring Initializr๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™” ํ–ˆ๋‹ค๋ฉด, gradlew ๋ช…๋ น์–ด๋‚˜ mvnw ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” gradlew๋ฅผ ์ด์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•ด๋ณด๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

$ ./gradlew build

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋นŒ๋“œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ${PROJECT_NAME}/build/libs/*.jar ํ˜•ํƒœ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์ด์šฉํ•ด์„œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Build Docker Image

์ด์ œ ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ๋ชจ๋‘ ๋๋งˆ์ณค์œผ๋‹ˆ, ๋ณธ๊ฒฉ์ ์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Spring boot ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— Dockerfile์„ ๋งŒ๋“ค์—ˆ๊ณ , ์—ฌ๊ธฐ์—์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

# docker build -t neonkid/dockerexample .

๋กœ์ปฌ์— ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ๋Š” root ๊ถŒํ•œ์„ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋นŒ๋“œํ•œ๋‹ค๋ฉด, ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ž‘์—…์ด ๋๋‚ฌ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์ด neonkid/dockerexample ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Run Server

์ด์ œ ๊ทธ๋Ÿผ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด๋ณผ๊นŒ์š”? ๋งŒ๋“ค์–ด์ง„ Docker ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

# docker run -d -p 1412:1412 --name dockerexample neonkid/dockerexample:latest

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ -p ์ธ์ž ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์™€ ํ˜„์žฌ ์šด์˜์ฒด์ œ์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ๋งํ‚น ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Spring boot์—์„œ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ํฌํŠธ ์ฃผ์†Œ๊ฐ€ ๋’ค์— ๋‚˜์™€์•ผ ํ•˜๋ฉฐ, ํ˜„์žฌ ์ธ์Šคํ„ด์Šค์— ๋งํ‚นํ•˜๊ณ ์ž ํ•˜๋Š” ํฌํŠธ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Spring boot์—์„œ 8080์œผ๋กœ ์„ค์ •ํ•œ ์„œ๋น„์Šค๋ฅผ 80 ํฌํŠธ์— ์„œ๋น„์Šคํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, => -p 80:1412
  • nginx ์›น ์„œ๋ฒ„์— ์˜ฌ๋ผ๊ฐ„ ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฅธ ์„œ๋น„์Šค ํฌํŠธ๋กœ ์„œ๋น„์Šคํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, => -p 1412:80

 

 

Spring Boot 2.3 ๋ฒ„์ „์—์„œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

์ตœ๊ทผ ์ถœ์‹œ๋œ Spring boot 2.3 ๋ฒ„์ „์—์„œ๋Š” ์œ„ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด ํ•œ ์ค„ ๋งŒ์œผ๋กœ๋„ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ฃ .

# ./gradlew bootBuildImage

๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ root ๊ถŒํ•œ์„ ์ด์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.

์ฒ˜์Œ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์ž‘์—…์€ ์ˆ˜๋™์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋น„ํ•ด ์—„์ฒญ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์ง€๋งŒ, Docker๋ฅผ ๋ฐฐ์šธ ์‹œ๊ฐ„์ด ๋ชจ์ž๋ผ๋‹ค๊ฑฐ๋‚˜ ๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ์ข€ ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ์ž‘์—…์„ ์›ํ•˜์‹ ๋‹ค๋ฉด, ์Œ ์ด ๋ฐฉ๋ฒ•๋„ ๋‚˜์˜์ง„ ์•Š์•„ ๋ณด์ด๋„ค์š”..

์ž‘์—…์ด ๋๋‚˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋นŒ๋“œ๋œ Docker ์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. dockerexample:0.0.1-SNAPSHOT์ด๊ตฐ์š”.

# docker run --tty -p 1412:1412 dockerexample:0.0.1-SNAPSHOT

์ด๋ฒˆ์—” ๋ฐ๋ชฌ ๋ชจ๋“œ๊ฐ€ ์•„๋‹Œ tty ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ์ฐจ์ด๊ฐ€ ๋ฌด์Šจ ์ฐจ์ด๋ƒ๊ตฌ์š”? ๋ฐ๋ชฌ ๋ชจ๋“œ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ์„œ๋น„์Šค ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์ด๋‚˜ ์‰˜์—์„œ ๋น ์ ธ๋‚˜๊ฐ€๋„ ๋™์ž‘ํ•˜์ง€๋งŒ tty ๋ชจ๋“œ๋Š” ํ˜„์žฌ ๋‚ด๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ํ˜น์€ ์‰˜์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ๋ฏธ๋„์ด๋‚˜ ์‰˜์„ ์ข…๋ฃŒํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋„ ๊ฐ™์ด ์ข…๋ฃŒ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

 

 

๋งˆ์น˜๋ฉฐ...

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•  ๋•Œ WAS๋กœ ๋นŒ๋“œํ•˜๊ณ , Tomcat์— ์˜ฌ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Spring boot๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ Jar ํŒŒ์ผ์˜ ๋นŒ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๊ณ , ๊ทธ๋Ÿผ์— ๋”ฐ๋ผ ์ผ๋ฐ˜ Java ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ๋„ ๋ฐฐํฌํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํฐ ๋ฉ”๋ฆฌํŠธ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์„œ ๊ฐœ๋ฐœํ•˜์˜€์„ ๋•Œ ํ…Œ์ŠคํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ง€๊ธˆ์€ Docker ํ•˜๋‚˜๋งŒ์„ ๊ฐ€์ง€๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€ ํ•˜๋‚˜ ์ •๋„๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๊ทธ์ณค์ง€๋งŒ Docker Compose, Docker Swarm์„ ์ด์šฉํ•˜๋ฉด ๋‚ด๊ฐ€ ๋งŒ๋“  ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด(DB, MQ) ๋“ฑ๋„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ๋Š” ๋‹ค์Œ์— ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments