내부 아이피를 활용하여 헬스체크서버에서 게임서버의 아이피를 보관하고 싶은데, 도커 내부에서 exec를 통해 아이피를 조회하거나 os 모듈을 이용하여 가져오면 도커 내부 아이피를 불러오게 되어 api로 전송할 수 없어 aws api를 활용하여 IP를 넘겨주고
있었다.
하지만 테스트가 끝나고 모두 nginx 서버를 통해 내부아이피로 통신이 되어야하는 상황으로 바꾸어야 하기 때문에 방안을 찾아야 한다.
찾은 방안 중 하나가 환경변수를 이용한 방법으로 도커를 실행할 때 같이 넣어주는 것이다.
HOST_IP=$(hostname -I | awk '{print $1}')
해당 명령어로 내부 아이피를 획득할 수 있다.
docker run -e HOST_IP=$HOST_IP ...
도커 실행 시 현재는 파일로 관리하고 있어 추후에 변환하는 작업을 거치고 넣어줘야 할 것 같다.
const myIp = process.env.HOST_IP;
// 헬스체크 서버 보고 로직
지금까지 알아본 방법중엔 위에 방법이 제일 간단한 방법인듯 싶다.
현재로서는 전체 게임로직 테스트 완료되면 내부 IP로 전환할 때 사용 예정이다.