Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

개발자입니다

[비트캠프] 97일차(20주차5일) - Docker(Docker로 배포, .jar 파일 생성) 본문

네이버클라우드 AIaaS 개발자 양성과정 1기/Docker, CI-CD

[비트캠프] 97일차(20주차5일) - Docker(Docker로 배포, .jar 파일 생성)

끈기JK 2023. 3. 24. 13:48

 

Web Application을 Docker 로 배포하기

 

사용자가 «container»myapp 의 80 포트로 접속한다. 여기서 «container»mariadb 의 3306 포트에 접속해 사용한다.

 

 

[MariaDB 컨테이너 준비]

mariadb 이미지로 mariadb 컨테이너를 ① 생성한다.

mariadb client 로 ② 설정한다.

- studydb 데이터베이스 생성

- study 사용자에게 studydb 사용 권한 부여

- 테이블 준비

- 예제 데이터 준비

→ 직접 손수 설정하거나

→ Docker 엔진을 통해 자동 설정. Dockerfile → 명령을 스크립트로 정의한다.

 

«PC»Windows 의 192.168.0.31 사용자가 192.168.1.10 으로 접속한다. «VirtualBox»ubuntu 의 192.168.1.10:3306 에 접속되고 여기서 172.17.0.2 로 연결한다. «docker container»mariadb 의 172.17.0.2:3306 에 접속된다.

 

 

[myapp 컨테이너 준비 - 모든 설정 수행]

ubuntu 이미지로 myapp 컨테이너를 ① 생성한다. /bin/bash 를 사용하도록 ② 설정 한다.

 

 

 

Linux 부팅과 /etc/profile 실행

 

Linux OS 를 ① 부팅 하면 /etc/profile 실행한다.  여기서 모든 사용자에게 적용될 공통 환경변수를 준비한다.

                                         ㄴ /etc/bash.bashrc → bash shell을 사용할 때 적용될 공통 환경변수 준비

                                         ㄴ /etc/profile.d/*.sh → 모든 .sh 파일 실행. ← 자동으로 실행시킬 스크립트를 이 폴더에 둔다.

 

*tee

입력 → T → 출력(file)

             ↓

          출력(stdout)

 

 

git 에서 받아서 서버 container 에서 build 해야 한다.

 

 

H/W (Intel/ARM) 위에 OS 가 있고 그 위에 Hypervisor 또는 Docker 가 있다.

Hypervisor (VMware 또는 VirtualBox) 위에 Guest OS (Linux) 가 있다. 그 위에 App(JDK: Linux 용 JDK) 이 있다.

Docker 위에 Container 가 있다. 그 위에 App(JDK: ARM 용, Intel 용) 이 있다. Host OS 의 Architecture 에 맞춰서 Image 다운로드

 



gradle build

 

$ gradle build 명령을 실행하면 다음과 같이 된다.

project-dir/src/main/ 아래 java/ 에 있는 *.java 는 *.class 로 변환되어 *.jar 로 묶인다.

                                        resources/ 에 있는 파일들은 *.jar 로 묶인다.

                                        webapp/ 에 있는 파일들은 묶이지 않는다.

project-dir/*.jar 파일들은 *.jar 로 묶인다.

 

 

 


 

 

조언

 

*

 

 


 

과제

 

/