통합설치를 위해서 두가지 경로를 준비했습니다.
1. docker image
2. github repository
도커(docker)란 무엇일까?
도커(docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 도커를 이용하는 이유는 하나의 이미지(image)를 통해서 실행 했을 때, 컨테이너를 자유롭게 사용할 수 있기 때문이다.
사용할 도커(docker)의 구조는 다음과 같다.
한 이미지(image)안에 ubuntu부터 Mobius와 nCube까지 한번에 실행하도록 설정해둔 image가 있다. 배포된 image를 통해서 기존에 했던 thyme와 Mobius의 통신을 확인할 수 있다.
도커 이미지를 IoTKETI에서도 제공하고 있으니 참고해도 좋을 것 같습니다.
제 개인적인 git repository에 Dockerfile 과 '개별설치 및 환경설정'에서 설정한 파일들을 업로드 해두었습니다.
Dockerfile은 mobius-docker/mobius/ 안에 있으며, 해당 내용은 다음과 같습니다.
# 1. ubuntu 설치
FROM ubuntu:16.04
MAINTAINER seunghwanly@gmail.com
# MySQL
# 2. mysql 설치
ENV DEBIAN_FRONTEND noninteractive
ENV MYSQL_PWD Password789!
RUN apt-get update
RUN echo "mysql-server mysql-server/root_password password $MYSQL_PWD" | debconf-set-selections
RUN echo "mysql-server mysql-server/root_password_again password ${MYSQL_PWD}" | debconf-set-selections
RUN apt-get -y install mysql-server
# 3. mysql import
COPY . /usr/app
RUN /etc/init.d/mysql start && sleep 5 && \
mysql -u root -e "CREATE DATABASE mobiusdb" && \
mysql -u root mobiusdb < /usr/app/mobius-2.4.36/mobius/mobiusdb.sql
# 4. mosquitto 설치
RUN apt-get install -y software-properties-common && \
rm -rf /var/lib/apt/lists/*
RUN apt-add-repository ppa:mosquitto-dev/mosquitto-ppa && \
apt-get update && \
apt-get install --yes mosquitto && \
apt-get install --yes libmosquitto-dev && \
apt-get install --yes mosquitto-clients && \
apt clean
# 5. node js 설치
RUN apt-get install --yes curl
RUN curl --silent --location https://deb.nodesource.com/setup_15.x | bash -
RUN apt-get install --yes nodejs
RUN apt-get install --yes build-essential
# 6. Mobius 설치
WORKDIR /usr/app/mobius-2.4.36
RUN npm install
# 7. nCube 설치
WORKDIR /usr/app/nCube-Thyme-Nodejs-2.3.2
RUN npm install
# 8. 서버
EXPOSE 3306
WORKDIR /usr/app
CMD /etc/init.d/mysql start && npm run dev
가상환경은 Linux:Ubuntu 16.04를 사용하였으며, MySQL부터 DB import, mosquitto, node js 그리고 Mobius, nCube를 순차적으로 설치하여 끝에 MySQL을 실행하고 Mobius와 nCube를 한번에 실행합니다.
git repository 안에, mobius-docker/mobius/package.json 파일을 보시면
"scripts": {
"start": "npm run dev",
"mobius": "cd mobius-2.4.36 && node mobius.js",
"thyme": "cd nCube-Thyme-Nodejs-2.3.2 && node thyme.js",
"mosquitto": "brew services start mosquitto",
"dev": "concurrently \"npm run mosquitto\" \"npm run mobius\" \"npm run thyme\""
}
이렇게 "scripts" 를 설정하여 동시에 한 터미널(콘솔)에서 총 3가지를 실행시키도록 하였습니다. 원하는 환경대로 임의로 수정하실 수 있습니다.
이 단계를 진행하기 전 PC에 도커(docker)가 설치되어있는지 확인해주세요!
도커(docker) 버전확인
docker --version
설치가 안되어있는 경우 !
설치하러가기
도커 이미지(docker image) 다운로드
docker pull seunghwanly/mobius:1.1
도커 이미지(docker image) 생성 확인
docker images
포트 지정 후, 도커(docker) 실행
docker run -p 8080:7579 seunghwanly/mobius:1.1
해당 링크로 들어가신 후에 Usage에서 💡 Running the app locally 를 따라서 진행해주시면 됩니다.
미리보기
Clone this repository
git clone https://github.com/seunghwanly/mobius-docker.git
Change directory to mobius
cd mobius
Get dependencies
npm install
create conf.json file in mobius-2.4.36
{
"csebase": "onem2m",
"cseid": "/onem2m",
"csebaseport": "7579",
"csetype": "in",
"dbhost": "localhost",
"dbuser": "root",
"dbpass": !MySQL PASSWORD!,
"dbname": "mobiusdb",
"superadm_usr": "superadmin",
"superadm_pwd": "f7c6c12d",
"pxymqttport": 7580,
"pxycoapport": 5683,
"pxywsport": 7577,
"tsagentport": 7582,
"mqttbroker": "localhost",
"secure": "disable",
"authorization": true,
"logDir": "./log"
}
import database mysqldb.sql
mysql -u root -p
CREATE DATABASE mobiusdb;
USE mobiusdb;
SOURCE "path";
SHOW DATABASES;
simple import, if database already exist
mysql -u root -p mobiusdb < ~/mobius-2.4.36/mobius/mobiusdb.sql
Check MySQL running
mysql.server start
Run concurrently : mobius, nCube, mosquitto
$ npm run dev
설치를 완료했다면 테스트를 진행해볼까요? 😀
안녕하세요. 혹시 5번에 mysql -u root -p 는 어디서 쳐야하는건가요 docker image 통해서 컨테이너 안에서는 sql 접속이 가능한데 mobius 디렉토리 내에서는 내외부 명령으로 실행할 수 있는 프로그램이 아니라고 하네요..