+ 00 00 0000

Have any Questions?

99_Simple Coding – 01_container_deploy

99_Simple Coding – 01_container_deploy

Table of Contents

๐Ÿ“ƒ ์š”์•ฝ

์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ตœ์ดˆ ์œˆ๋„์šฐ๋ฅผ ์„ค์น˜ํ•ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋žจ์„ OS(Operating System) ๋ผ๊ณ  ํ•˜๊ณ  ์šด์˜์ฒด์ œ๋ผ๊ณ  ํ•จ.
์šด์˜์ฒด์ œ๋Š” ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ์Œ์•…, ๋™์˜์ƒ ๋“ฑ์˜ ํ™˜๊ฒฝ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” S/W ๋กœ ์ตœ์ดˆ๋กœ ์„ค์น˜๋˜์–ด์•ผ ํ•จ.
์šด์˜์ฒด์ œ์˜ ์ข…๋ฅ˜๋Š” ์œˆ๋„์šฐ(Window), ๋ฆฌ๋ˆ…์Šค(Linux), ์œ ๋‹‰์Šค(Unix)๊ฐ€ ์žˆ์œผ๋ฉฐ ์ฃผ๋กœ ๊ฐœ์ธ์šฉ์œผ๋กœ ์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํšŒ์‚ฌ์—์„œ๋Š” ๋ฆฌ๋ˆ…์Šค ๋˜๋Š” ์œ ๋‹‰์Šค๊ฐ€ ์‚ฌ์šฉ๋จ

์š”์†Œ ๊ธฐ์ˆ  :

– Basic : ๋ฆฌ๋ˆ…์Šค

๐Ÿ“ƒ ๊ธฐ์ˆ  ๊ตฌํ˜„

์ŠคํŽ™ :

- docker desktop

๐Ÿ“ƒ ์ปจํ…Œ์ด๋„ˆ์™€ ๋„คํŠธ์›Œํฌ

๋ฐฐํฌ : ์†Œ์Šค ์™„์„ฑ(ํ†ตํ•ฉํ…Œ์ŠคํŠธ(ํ™”๋ฉดํ…Œ์ŠคํŠธ)) -> ๊ณ ์ •
์™„์„ฑ๋ณธ ํด๋”(๋””๋ ‰ํ† ๋ฆฌ) : ๋ฐฐํฌ๋ณธ ์†Œ์Šค ๊ด€๋ฆฌ

1) ๋ฐฐํฌ ์ ˆ์ฐจ

1) ํ”„๋ก ํŠธ์—”ํŠธ ๋ฐฐํฌ : vue ์—์„œ ๋ฐฐํฌ ์ ˆ์ฐจ -> ์–ด๋–ค ํŒŒ์ผ
2) ๋ฒก์—”๋“œ ๋ฐฐํฌ : springboot ์—์„œ ๋ฐฐํฌ ์ ˆ์ฐจ -> .war ํŒŒ์ผ
3) ํด๋ผ์šฐ๋“œ ์˜ค๋ผํด DB ์‚ฌ์šฉ : ์ „์ž์ง€๊ฐ‘(wallet)

1) ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ

(1) ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌํŒ ๋งŒ๋“ค๊ธฐ
์‚ฌ์šฉ๋ฒ•) npm run build
build ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋จ : ์•ˆ์— ์†Œ์Šค๊ฐ€ ๋ทฐ ๋ฐฐํฌํŒ์ž„

2) ๋ฒก์—”๋“œ ๋ฐฐํฌํŒ ๋งŒ๋“ค๊ธฐ

์‚ฌ์šฉ๋ฒ•) gradle(๋นŒ๋“œํˆด) ๋ฉ”๋‰ด -> build ์„ ํƒ -> clean(์ฒญ์†Œ)
-> bootwar(๋ฐฐํฌํŒ์ƒ์„ฑ)
build/libs/xxx.war (springboot ๋ฐฐํฌํŒ)

3) ์›น์„œ๋ฒ„ ์ค€๋น„ : ๋„์ปค์ด๋ฏธ์ง€(์•„ํŒŒ์น˜ ์›น์„œ๋ฒ„, nginx ์›น์„œ๋ฒ„)

์›น์„œ๋ฒ„ : html/css/js ํŒŒ์ผ ์„œ๋ฒ„์—์„œ ๋™์ž‘์‹œํ‚ค๋Š” s/w
์˜ˆ) live server ์™€ ๋น„์Šท
์‹ค์Šต : nginx ์›น์„œ๋ฒ„ ์‚ฌ์šฉ
ํ™˜๊ฒฝํŒŒ์ผ : default.conf (์›น์„œ๋ฒ„ ์†Œ์Šค ๋ฐฐํฌ ๊ฒฝ๋กœ ์ง€์ •)
default.conf ์ปจํ…Œ์ด๋„ˆ์˜ nginx ๊ฒฝ๋กœ์— ๋ณต์‚ฌ
a) ํด๋”(๋””๋ ‰ํ† ๋ฆฌ) ๋งŒ๋“ค๊ธฐ :
– 02_micro_deploy/backend
– 02_micro_deploy/webapps/conf/conf.d/default.conf
– 02_micro_deploy/webapps/html
b) 02_micro_deploy/webapps/html ํด๋”์— ๋ฆฌ์•กํŠธ ๋ฐฐํฌํŒ ๋ณต์‚ฌ

4) ํ”„๋ก ํŠธ์—”ํŠธ ๋นŒ๋“œํŒŒ์ผ ๋งŒ๋“ค๊ธฐ : Dockerfile

๋„์ปค ๋นŒ๋“œ ๋ช…๋ น์–ด
FROM ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ – ๋Œ€์ƒ ๊ธฐ๋ณธ์ด๋ฏธ์ง€๋กœ S/W ์ด๋ฏธ์ง€ ์ œ์ž‘
COPY ์›๋ณธํŒŒ์ผ ์ปจํ…Œ์ด๋„ˆํŒŒ์ผ – PC ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ณต์‚ฌ
CMD [“๋ช…๋ น์–ด”,”์˜ต์…˜”,”๋Œ€์ƒํŒŒ์ผ”] – ์ปจํ…Œ์ด๋„ˆ ์ •์ƒ ์‹คํ–‰ ํ›„ ์ง€์‹œ๋œ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•จ
EXPOSE ํฌํŠธ – ์™ธ๋ถ€ PC์—์„œ ๋„์ปค์ปจํ…Œ์ด๋„ˆ ์ ‘๊ทผ์‹œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ์ง€์ •(3000, 8000 ๋“ฑ)
๊ทธ ์™ธ ๋งŽ์€ ๋ช…๋ น์–ด๊ฐ€ ์žˆ์œผ๋‹ˆ ์ฑ…์ด๋‚˜ ๋งค๋‰ด์–ผ, ๊ตฌ๊ธ€์„ ์ด์šฉํ•˜์„ธ์š”

5) ๋„์ปค ๋นŒ๋“œ ์‹คํ–‰

์‚ฌ์šฉ๋ฒ•) docker build -t ์ƒ์„ฑํ• ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ
Dockerfile ์™„์„ฑ
์ด๋ฏธ์ง€ ์„ ํƒ : os(๋ฆฌ๋ˆ…์Šค) + nginx
FROM nginx:1.23.3
nginx(์›น์„œ๋ฒ„) ์˜ ๊ธฐ๋ณธ ์„ค์ • ์‚ญ์ œํ•˜๊ณ  pc์—์„œ ์„ค์ •์„ ํŒŒ์ผ ๋ณต์‚ฌ
RUN rm -rf /etc/nginx/conf.d
pc ์›น์„œ๋ฒ„ ํ™˜๊ฒฝํŒŒ์ผ ์ปจํ…Œ์ด๋„ˆ์— ๋ณต์‚ฌ
COPY conf /etc/nginx
๋ฆฌ์•กํŠธ ์†Œ์Šค ๋ฐฐํฌ ๋ฐ ๋ณต์‚ฌ
COPY html /usr/share/nginx/html
3000 ํฌํŠธ ๊ฐœ๋ฐฉ(์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉ) : ๋ฆฌ์•กํŠธ ํฌํŠธ
EXPOSE 3000
์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ nginx ์›น์„œ๋ฒ„ ์‹คํ–‰
CMD ["nginx", "-g", "daemon off;"]

6) ๋„์ปค ๋นŒ๋“œ

์‚ฌ์šฉ๋ฒ•) docker build -t ์ƒ์„ฑํ• ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ .
docker build -t frontend-react:latest .
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\webapps>docker build -t frontend-react:latest .
Sending build context to Docker daemon  1.154MB
Step 1/6 : FROM nginx:1.23.3
 ---> ac232364af84
...์ƒ๋žต

7) ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ™•์ธ

docker images
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\webapps>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
frontend-react      latest              a0f625cd5920        4 minutes ago       143MB
hello2              latest              442070c993ca        4 hours ago         109MB

8) frontend ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

์‚ฌ์šฉ๋ฒ•) docker run -it –name ์ปจํ…Œ์ด๋„ˆ๋ณ„๋ช… -p pcํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ
-p ์™ธ๋ถ€ํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ : ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†์„ ์œ„ํ•œ ํฌํŠธ๋ฒˆํ˜ธ
docker run -it –name frontend-react -p 3000:3000 frontend-react
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\webapps>docker run -it --name frontend -p 3000:3000 frontend
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
...์ƒ๋žต

9) ์›น๋ธŒ๋ผ์šฐ์ € : http://localhost:3000

10) ๋ฒก์—”๋“œ ๋ฐฐํฌ

๊ณ ๋ ค๋Œ€์ƒ) DB ํด๋ผ์šฐ๋“œ ์ „์ž์ง€๊ฐ‘ ํด๋” :
์ปจํ…Œ์ด๋„ˆ ์•ˆ์—๊ฒฝ๋กœ : /home/opc/work/eWallet/Wallet_orcl/
(1) springboot ์†Œ์Šค : application.properties ํŒŒ์ผ
url : /home/opc/work/eWallet/Wallet_orcl/ ์ˆ˜์ •
(2) ๋ฒก์—”๋“œ ๋„์ปค ํŒŒ์ผ ์ž‘์„ฑ : Dockerfile
๊ธฐ๋ณธ์ด๋ฏธ์ง€ : openjdk 11 ๋ฒ„์ „ + ๋ฆฌ๋ˆ…์Šค
FROM openjdk:11-jre
์˜ค๋ผํด ์ „์ž์ง€๊ฐ‘ ํŒŒ์ผ ๋ณต์‚ฌ : Wallet_orcl
COPY Wallet_orcl /home/opc/work/eWallet/Wallet_orcl/
springboot ๋ฐฐํฌํŒ ๋ณต์‚ฌ
COPY simpledms-boot.war simpledms-boot.war
์ปจํ…Œ์ด๋„ˆ ๊ฐ€๋™ ํ›„ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด
CMD ["java", "-jar", "simpledms-boot.war"]

11) ๋„์ปค ๋นŒ๋“œ ๋ช…๋ น์–ด ์‹คํ–‰

์‚ฌ์šฉ๋ฒ•) docker build -t ์ƒ์„ฑํ• ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ .
docker build -t simpledms .
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\backend>docker build -t simpledms .
Sending build context to Docker daemon  44.27MB
Step 1/4 : FROM openjdk:11-jre
...์ƒ๋žต
docker images
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\backend>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
simpledms           latest              bcd4c3ec9ba8        25 
...์ƒ๋žต

12) ๋ฒก์—”๋“œ ์‹คํ–‰ : docker run

์‚ฌ์šฉ๋ฒ•) docker run -it –name ๋ณ„๋ช… -p ์™ธ๋ถ€ํฌํŠธ:๋‚ด๋ถ€ํฌํŠธ -p ์™ธ๋ถ€ํฌํŠธ2:๋‚ด๋ถ€ํฌํŠธ2 ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ
-p ์™ธ๋ถ€ํฌํŠธ:๋‚ด๋ถ€ํฌํŠธ … : ๊ฐœ๋ฐฉ ํฌํŠธ๋Š” ์—ฌ๋Ÿฌ๊ฐœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
docker run -it –name simpledms -p 8000:8000 -p 1521:1521 simpledms
D:\Work_AWS_Docker_Microservice_Step04_Docker_1_simpledms_micro_SimpleDMS_Dockerizing_micro_deploy\backend>docker run -it --name simpledms -p 8000:8000 -p 1521:1521 simpledms
09:06:26,338 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@69930714 - URL [jar:file:/simpledms-boot
...์ƒ๋žต

13) ์›น๋ธŒ๋ผ์šฐ์ € ํ™•์ธ : http://localhost:3000

๋ฐ์ดํ„ฐ ํ™”๋ฉด์— ๋‚˜์˜ค๋Š” ์ง€ ํ™•์ธ

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค