2.2. Docker 이미지 배포 방식
본 장에서는 데이터 코어 모듈의 각 어플리케이션을 Docker 이미지 형태로 배포하는 방법을 설명합니다. 어플리케이션을 빌드하기 위한 요구사항은 아래와 같습니다.
- Java: JDK 1.8 이상
- Apache Maven: 3.8 이상
- Docker: 23.0 이상
- Docker Compose: 2.16 이상
2.2.1. 빌드 환경
본 장에서 설명하는 모든 내용은 아래 환경을 가정합니다.
- OS: CentOS 7
- 사용자명: centos
- 홈 디렉토리: /home/centos
- 데이터 코어 모듈 Git 저장소: /home/centos/datacore_src
$JAVA_HOME
,$MAVEN_HOME
,$PATH
환경변수 구성됨- Docker 관련 명령어는 centos 사용자가
sudo
없이 실행할 수 있음
2.2.2. Git 저장소 구성
데이터 코어 모듈 Git 저장소(외부 링크)는 아래 구조로 구성됩니다.
어플리케이션 | Repository URI | 디렉토리 명 |
---|---|---|
Data manager | https://github.com/IoTKETI/citydatahub_data_core_module.git | datamanager |
Ingest interface | https://github.com/IoTKETI/citydatahub_data_core_module.git | ingestinterface |
Data service broker | https://github.com/IoTKETI/citydatahub_data_core_module.git | dataservicebroker |
UI | https://github.com/IoTKETI/citydatahub_data_core_module.git | ui |
Dashboard | https://github.com/IoTKETI/citydatahub_data_core_module.git | dashboard |
Push agent | https://github.com/IoTKETI/citydatahub_data_core_module.git | pushagent |
2.2.3. 어플리케이션 빌드 및 Docker 이미지 생성
데이터코어 모듈 Git 저장소를 복제합니다.
- 홈 디렉토리 아래에
datacore
디렉토리로 복제됩니다.
$ cd ~
$ git clone https://github.com/IoTKETI/citydatahub_data_core_module.git datacore- 홈 디렉토리 아래에
복제한 Git 저장소의 각 어플리케이션 디렉토리로 이동하여 빌드 명령어를 실행합니다.
# Data manager 빌드 및 Docker 이미지 생성
$ cd ~/datacore/datamanager
$ mvn -DskipTests clean package docker:build
# Ingest interface 빌드 및 Docker 이미지 생성
$ cd ~/datacore/ingestinterface
$ mvn -DskipTests clean package docker:build
# Data service broker 빌드 및 Docker 이미지 생성
$ cd ~/datacore/dataservicebroker
$ mvn -DskipTests clean package docker:build
# UI 빌드 및 Docker 이미지 생성
$ cd ~/datacore/ui
$ mvn -DskipTests clean package docker:build
# Dashboard 빌드 및 Docker 이미지 생성
$ cd ~/datacore/dashboard
$ mvn -DskipTests clean package docker:build
# Push agent 빌드 및 Docker 이미지 생성
$ cd ~/datacore/pushagent
$ mvn -DskipTests clean package docker:build결과 확인
docker image ls
명령어로 Docker 이미지를 확인할 수 있습니다.- 오류 없이 빌드가 완료된 경우 아래와 같이
keti/sc/
로 시작하는 Docker 이미지가 생성됩니다.
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
keti/sc/data-service-broker latest 06600b3999d3 11 days ago 364MB
keti/sc/datacore-usertool latest 0276d8908b3c 8 weeks ago 201MB
keti/sc/datacore-ui latest 254183c49dd0 8 weeks ago 208MB
keti/sc/push-agent latest 83d8a2be74ea 8 weeks ago 199MB
keti/sc/ingest-interface latest 79ebe7597c9b 2 months ago 227MB
keti/sc/data-manager latest 73703315d765 2 months ago 229MB
2.2.4. 기타
Docker 이미지 빌드 이전 단계에서 데이터코어 배포 환경 구성을 사전에 포함시킬 수 있습니다. 이 경우, 2.2.3장 (내부 링크)의 2번 단계에 앞서 각 어플리케이션의 설정 파일을 찾아 환경설정한 뒤 빌드를 진행합니다.
- 각 어플리케이션 별 환경 설정 파일은
어플리케이션 root/src/main/resources/application-local.yml
파일입니다. - 각 어플리케이션 별 환경 설정 내용은 4장 (내부 링크)에서 확인 가능합니다.