본문으로 건너뛰기

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 managerhttps://github.com/IoTKETI/citydatahub_data_core_module.gitdatamanager
Ingest interfacehttps://github.com/IoTKETI/citydatahub_data_core_module.gitingestinterface
Data service brokerhttps://github.com/IoTKETI/citydatahub_data_core_module.gitdataservicebroker
UIhttps://github.com/IoTKETI/citydatahub_data_core_module.gitui
Dashboardhttps://github.com/IoTKETI/citydatahub_data_core_module.gitdashboard
Push agenthttps://github.com/IoTKETI/citydatahub_data_core_module.gitpushagent

2.2.3. 어플리케이션 빌드 및 Docker 이미지 생성

  1. 데이터코어 모듈 Git 저장소를 복제합니다.

    • 홈 디렉토리 아래에 datacore 디렉토리로 복제됩니다.
    $ cd ~
    $ git clone https://github.com/IoTKETI/citydatahub_data_core_module.git datacore
  2. 복제한 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
  3. 결과 확인

    • 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장 (내부 링크)에서 확인 가능합니다.