일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터베이스
- 알고리즘
- MYSQL
- SQL
- 코딩봉사
- 스프링
- 백준알고리즘
- CJ UNIT
- SW봉사
- BFS
- 파이썬
- java
- programmers
- 회고
- 문제풀이
- python
- 코딩교육봉사
- 공부일지
- kotlin
- 백준
- C++
- 백준 알고리즘
- softeer
- 정보처리산업기사
- 1과목
- 자바
- 시나공
- 코틀린
- 소프티어
- 프로그래머스
- Today
- Total
JIE0025
우분투 시스템 환경변수 설정과 applicaiton.yml에서 해당 값 사용 본문
✅ 개요
이전 프로젝트를 다시 배포하는 중에
스프링부트 프로젝트를 실행시켰는데, 에러가 발생했다.
encyException: Error creating bean with name 'securityConfig' defined in URL [jar:file:/home/ubuntu/seb42_pre_024/backend/build/libs/stackoverflow-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/codestates_pre024/stackoverflow/global/auth/config/SecurityConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtTokenizer': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'JWT_KEY' in value "${JWT_KEY}"
답은 아주 간단했다.
특정 Bean(빈) 생성 중 application.yml의 값을 가져오는 작업이 있었고,
application.yml에는 환경변수에서 값을 가져오도록 설정되어 있는 부분이 존재,
EC2 인스턴스 환경에선 환경변수가 존재하지 않아 발생하는 에러였다.
이를 위해 생성한 인스턴스에 환경변수를 세팅해주면 된다.
아래처럼 appication.yml에 특정 값을 그대로 사용해도 되지만,
jwt:
key: 아무랜덤한문자열
access-token-expiration-minutes: 30
refresh-token-expiration-minutes: 60
인스턴스에 환경변수로도 만들고 가져오도록 만들수도 있다.
jwt:
key: ${JWT_KEY}
access-token-expiration-minutes: ${JWT_ACCESS_EXPIRATION_MIN}
refresh-token-expiration-minutes: ${JWT_REFRESH_EXPIRATION_MIN}
해당 과정을 밟아보자.
✅ ${변수이름}
위에서 본 것처럼 ${변수이름}을 적어주면, 환경변수에서 값을 찾아와 할당하게 된다.
jwt:
key: ${JWT_KEY}
access-token-expiration-minutes: ${JWT_ACCESS_EXPIRATION_MIN}
refresh-token-expiration-minutes: ${JWT_REFRESH_EXPIRATION_MIN}
✅ 우분투 리눅스에 환경변수 설정하기
1) .bashrc파일에 환경변수를 선언해주면 된다.
echo 'export JWT_KEY=변수에할당할문자열' >> ~/.bashrc
2) .bashrc를 적용한다
3) 잘 적용되었는지 확인한다.
source ~/.bashrc
echo $JWT_KEY
설정 이후 다시 서버를 실행시켜보니까
에러가 사라지고 정상적으로 작동한다!
'백엔드 > 웹, 배포' 카테고리의 다른 글
[AWS] EC2 무중단 배포 (linux - nohup) (0) | 2023.06.23 |
---|---|
[AWS] 웹 프론트, S3 저장소를 통해 배포하자 (0) | 2023.06.21 |
EC2 인스턴스에 git clone(with ssh)후, 서버 실행 (0) | 2023.06.19 |
[AWS] EC2 인스턴스 생성과 맥북터미널로 연결하기 (0) | 2023.06.17 |
[AWS][고민중] 'HTTPS 적용기' 이후 발생한 의문들 해소하기 (0) | 2023.05.09 |