개발자입니다
[비트캠프] 97일차(20주차5일) - Docker(Docker로 배포, .jar 파일 생성) 본문
[비트캠프] 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 로 묶인다.
조언
*
과제
/
'네이버클라우드 AIaaS 개발자 양성과정 1기 > Docker, CI-CD' 카테고리의 다른 글
[비트캠프] 99일차(21주차2일) - Docker(빌드) (0) | 2023.03.28 |
---|---|
[비트캠프] 98일차(21주차1일) - WSL 사용, Docker Desktop 사용, myapp-70(Facebook 로그인) (0) | 2023.03.27 |
[비트캠프] 96일차(20주차4일) - Docker(pull, 볼륨 공유, 이미지 생성과 배포) (0) | 2023.03.23 |
[Docker] 도커 사용법 정리 - 설치, 컨테이너, 볼륨, 이미지 (0) | 2023.03.23 |
[비트캠프] 95일차(20주차3일) - Linux(Shell, 사용자 관리 및 권한), Docker (0) | 2023.03.22 |