1.0.1 • Published 2 months ago

@dkpkg/dk-gw-core v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

버전 제한

  • NodeJS : 14.16.0
  • npm : 7.6.1

package-lock.json 은 npm 버전에 따라서 바뀔 수 있기 때문에, npm 버전을 맞추어야 한다.

NodeJS 특정 버전 설치하기 위해서는 NodeJS 홈페이지에서 버전 다운로드 받아 설치하면 된다. NPM 은 다음 명령어로 특정 버전을 설치 하면 된다.

$ npm i -g npm@7.6.1

GRPC

GRPC 서버 접근 소스에 접근 하기 위해서 다음 파일을 복사 해야 한다.

  • ms-core/src/proto : src/proto 에 덮어 쓰도록 한다.

Docker

설명

ras5 기본 Rest API를 처리하는 docker 이미지 이다. 다음과 같이 버전 관리 하도록 한다.

  • 개발 : x.<0 또는 odd>.x
  • 상용 : x..x

즉, 개발은 중간 버전을 홀수(1.0.0, 또는 1.1.0) 으로 상용은 짝수(1.2.0) 으로 한다. 즉, 1.0.0 과 1.2.0 은 같은 버전이고, 1.1.0 과 1.4.0 도 같은 버전이다.(환경-개발, 상용만 다름)

이미지 생성

$ docker image build --build-arg BUILDER_TYPE=development -t ras5/gw_core:1.0.0 .
$ docker image build --build-arg BUILDER_TYPE=production -t ras5/gw_core:1.0.0 .

이미지 삭제

$ docker image rm ras5/gw_core:1.0.0

dangle 이미지

  • 조회
$ docker image ls -f dangling=true
  • 삭제
$ docker image rm -f $(docker images -f "dangling=true" -q)

이미지 추출

$ docker image save -o ras5_gw_core_1_0_0.tar ras5/gw_core:1.0.0

이미지 로드

$ docker image load -i ras5_gw_core_1_0_0.tar

컨테이너

테스트용 실행

$ docker container run -dit --name ras5_gw_core \
          -p 9000:9000 \
          ras5/gw_core:1.0.0 \
          /bin/sh

접근

$ docker container attach ras5_gw_core

중단

$ docker container stop ras5_gw_core ; docker container rm ras5_gw_core

환경 변수

  • PG_TIME_ZONE : 기본 타임존
  • PG_LANG : 기본 언어
  • PG_LOG_LEVEL : 로그 레벨
  • PG_FILE_ERR_MILLI_SEC : 파일 처리 제한 시간. 파일 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_PROC_ERR_MILLI_SEC : 로직 처리 제한 시간. 로직 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_REDIS_ERR_MILLI_SEC : Redis 처리 제한 시간. Redis 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_INFLUX_ERR_MILLI_SEC : Influx 처리 제한 시간. Influx 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_MQTT_PUB_ERR_MILLI_SEC : Mqtt publish 처리 제한 시간. Mqtt publish 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_GRPC_ERR_MILLI_SEC : GRPC 서버 연동 제한 시간. GRPC 연동시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_GWCORE_MSCORE_USE : ms-core 를 사용 할지 여부. true 라면 사용 한다.
  • PG_GWCORE_MSCORE_GRPC_HOST : ms-core 의 hostname
  • PG_GWCORE_MSCORE_GRPC_PORT : ms-core 의 port
  • PG_GWCORE_MSBOARD_USE : ms-board 를 사용 할지 여부. true 라면 사용 한다.
  • PG_GWCORE_MSBOARD_GRPC_HOST : ms-board 의 hostname
  • PG_GWCORE_MSBOARD_GRPC_PORT : ms-board 의 port
  • PG_GWCORE_API_URL_PATH_PREFIX : Rest API 의 prefix. 일반적으로 버전명을 붙인다. v1, v2 등등
  • PG_GWCORE_USER_EXTRA_TEMPLATE_RID : 유저 가입시 사용될 유저 부가 정보 템플릿의 리소스 아이디. 값이 없으면 부가 정보 사용 하지 않음
  • PG_GWCORE_HTTP_REQUEST_JSON_BODY_SIZE_LIMIT : Rest API 의 body max size. 10000kb 형태로 사용
  • PG_GWCORE_AUTH_FILTER_ERR_MILLI_SEC : authorization 필터 처리 제한 시간. 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_GWCORE_FILE_UPLOAD_MAX_BYTE : 파일 업로드 허용 최대 사이즈. byte 단위.
  • PG_GWCORE_NON_S3_PRIVATE_FILE_URL_PREFIX : S3에 업로드 되지 않고, private 파일이 아닐때, 파일에 접근하는 URL Prefix. nginx 에서 해당 패스에 대해서 url location alias 설정을 해 주어야 한다.
  • PG_GWCORE_FILE_SERVER : 파일에 접근 할 수 있는 파일 서버 주소. https://ras5.ckpush.com 형태
  • PG_GWCORE_GOOGLE_OAUTH2_CLIENT_ID : 구글 로그인을 위한 OAuth2 클라이언트 아이디

디렉토리 및 파일

  • /data/log/gw : 로그 디렉토리
  • /data/files/gw : 파일 업로드시 저장되는 디렉토리
  • /data/oauth2/apple/key.p8 : 애플 로그인시 사용될 Apple Developer Key 파일의 파일 경로