Step3-kakao-tech-campus / Team3_BE

[카테캠 1기] 번개 지향 볼링 모집 커뮤니티 "번개볼링"의 백엔드 서버입니다.
2 stars 4 forks source link

environment variable을 활용하여 실행 profile 별 yml 분리 #92

Closed jagaldol closed 1 year ago

jagaldol commented 1 year ago

Summary

기존의 application.yml 파일을 정리하고 secret 정보들은 환경변수로 추출하였습니다.

Description

90 을 참고해주시길 바랍니다. 지저분한 yml파일들을 각 환경에 맞춰 통합하였습니다.

.env파일을 사용하여 환경변수를 기록할 수 있습니다. 프로젝트 최상위에 존재하는 .env.example을 복사하여 .env를 만들고 내부 값들을 설정에 맞게 부여해주세요.

intelliJ 사용법

  1. 먼저 envfile 플러그인을 설치해주세요.
    image
  2. 플러그인 설치후 intelliJ를 reboot하고, Run Configurations에 진입합니다.
    image
  3. Enable EnvFile을 선택하여 활성화하고 파란색 +버튼을 클릭합니다.
    image
  4. .env -> .env를 선택하면 자동으로 .env 파일이 선택되고 해당 Configuration을 실행 시 env file을 바탕으로 환경변수가 삽입되어 실행됩니다.

ubuntu 에서 실행법

각각의 환경변수를 export TOKEN_SECRET="bungae"명령어로 환경변수 등록이 가능합니다. 쉘 접속을 종료하면 등록한 환경변수가 사라지니까 screen 에 진입하여 일괄 등록해두어야합니다.

.env 파일을 활용하는 방법입니다.

$ set -a
$ source .env
$ set +a

위 명령어 셋으로 .env파일의 환경변수를 전부 등록이 가능합니다. .sh 스크립트를 만들려고 했으나 .sh 스크립트가 실행 도중까지만 유효하고 스크립트 종료후 빠져나오면서(쉘이 변경됨) 유지가 안됩니다. 그냥 별개의 3줄 명령어를 입력하는게 낫겠습니다.

이제 profiles가 통합되어 실행 명령어는 java -jar -Dspring.profiles.active=product build/libs/server-0.0.1.jar으로 축소되었습니다.

Docker

Docker 에 환경변수 관리하기

위 포스팅에 따르면 env_file: .env로 도커에 환경변수 주입이 가능하다고합니다. 테스트는 해보지 않았습니다. 추후 개발에 참고하시면 될거 같습니다!

Related Issue

Issue Number: close #90