CodeDeploy에서는 왜 환경변수가 안 불러와져?

박진형·2022년 9월 6일
0

프로젝트 진행 중 CI/CD 환경 구축을 위해 CodeDeploy를 사용하던 중 쉘 스크립트로 JAR 실행 시 환경 변수를 사용하고 싶었는데 환경 변수가 읽어지지 않는 문제가 발생했습니다. 이 문제를 어떤 관점에서 바라보았고, 어떻게 해결했는지 공유합니다~

식별

CodeDeploy를 통해 배포할 때, 배포 완료 후 스크립트로 JAR파일 실행 시 시스템 환경 변수에 지정해둔 복호화 키, profile 정보 등을 불러와 사용합니다. 하지만 어째서인지 환경변수가 불러와지지 않는 문제점이 발생했습니다.

분석 및 개선방향

이 문제를 해결하기 위해 이것저것 검색하다 다음과 같은 해결책을 제시한 글이 있었습니다.

AWS CodeDeploy에서 환경변수 적용하는 방법

이 블로그대로 /etc/profile.d/codedeploy.sh 를 생성해서 환경변수를 등록해줬지만 저에게는 적용이 되지 않았습니다. 아마 예전에는 통했던 방법이지만 지금은 통하지 않은듯 해보였습니다.

많은 실험과 고민을 한 결과 결론은 CodeDeploy를 통해 Script를 실행할때에는 기본적으로 .bashrc를 사용하지 않는다 입니다.

CodeDeploy로 배포할 때에도 .bashrc 를 사용할 수 있게된다면 문제를 해결할 수 있을 듯 해보였습니다.

해결

저는 다음과 같이 CodeDeploy가 사용하는 스크립트에서 .bashrc를 사용할 수 있도록 했습니다.

  • vim ~/.bashrc
  • export 환경변수 등록

CodeDeploy에서 실행 시킬 script 파일에서 source ~/.bashrc 명령어를 통해 .bashrc를 사용할 수 있도록 추가해줍니다.

  • deploy.sh

0개의 댓글