+ 00 00 0000

Have any Questions?

99_Simple Coding – 01_container_deploy

99_Simple Coding – 01_container_deploy

μ‰¬μš΄ λͺ©μ°¨

πŸ“ƒ μš”μ•½

컴퓨터λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ 졜초 μœˆλ„μš°λ₯Ό μ„€μΉ˜ν•΄μ•Ό μ‚¬μš©ν•  수 있음.
μœˆλ„μš° ν”„λ‘œκ·Έλž¨μ„ 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

데이터 화면에 λ‚˜μ˜€λŠ” 지 확인

λ‹΅κΈ€ 남기기

이메일 μ£Όμ†ŒλŠ” κ³΅κ°œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œλŠ” *둜 ν‘œμ‹œλ©λ‹ˆλ‹€