프로젝트 진행 중 CI/CD 환경 구축을 위해 CodeDeploy를 사용하던 중 쉘 스크립트로 JAR 실행 시 환경 변수를 사용하고 싶었는데 환경 변수가 읽어지지 않는 문제가 발생했습니다. 이 문제를 어떤 관점에서 바라보았고, 어떻게 해결했는지 공유합니다~
CodeDeploy를 통해 배포할 때, 배포 완료 후 스크립트로 JAR파일 실행 시 시스템 환경 변수에 지정해둔 복호화 키, profile 정보 등을 불러와 사용합니다. 하지만 어째서인지 환경변수가 불러와지지 않는 문제점이 발생했습니다.
이 문제를 해결하기 위해 이것저것 검색하다 다음과 같은 해결책을 제시한 글이 있었습니다.
이 블로그대로 /etc/profile.d/codedeploy.sh 를 생성해서 환경변수를 등록해줬지만 저에게는 적용이 되지 않았습니다. 아마 예전에는 통했던 방법이지만 지금은 통하지 않은듯 해보였습니다.
많은 실험과 고민을 한 결과 결론은 CodeDeploy를 통해 Script를 실행할때에는 기본적으로 .bashrc를 사용하지 않는다 입니다.
CodeDeploy로 배포할 때에도 .bashrc 를 사용할 수 있게된다면 문제를 해결할 수 있을 듯 해보였습니다.
저는 다음과 같이 CodeDeploy가 사용하는 스크립트에서 .bashrc를 사용할 수 있도록 했습니다.
CodeDeploy에서 실행 시킬 script 파일에서 source ~/.bashrc 명령어를 통해 .bashrc를 사용할 수 있도록 추가해줍니다.