Project/회고
2025_04_28 프로젝트 에러 회고
hi_i
2025. 4. 28. 13:01
문제상황
도커환경의 fastapi에서 elasticsearch의 데이터를 가져오지 못하는 문제 발생
원인 분석
- 로컬 환경 테스트 진행시 문제없이 elasticsearch의 데이터 접근 가능
- 도커 환경 테스트 진행시 elasticsearch의 데이터에 아예 접근 불가능 -> 기존 예외 처리해놨던 elasticsearch 조회 실패 에러 반환
해결
- host 주소
로컬 환경에서는 HOST가 localhost로 실행되지만 도커 환경에서는 docker 네트워크 내에서 실행되기때문에 도커 컨테이너 내부에서 접근 가능한 네트워크 주소를 사용해야함. (도커내부 접근 가능 주소 -> container_name으로 설정한 이름)
#local
#ES_HOST=http://localhost:9200
# docker
ES_HOST=http://elasticsearch:9200
- 도커 netwoks 연결 설정
기본적으로 docker compose를 사용하면 한 네트워크로 묶이지만 networks를 명시적 정의하면 직접 연결 시켜줘야함.
fastapi에 elasticsearch networks 를 등록해주지 않았음. -> fastapi는 elasticsearch를 인식하지 못함.
fastapi의 networks에 elasticsearch networks 설정해주고 서로 같은 네트워크로 묶어서 찾을 수 있게 변경.
docker에 대한 세부적인 지식 부족으로 인한 오류..
처음에는 명확한 오류가 보여지지 않고 그냥 엘라스틱서치에 접근할 수 없다는 에러만 존재해서 해결하는데 어려움이 있었음.
기본적인 지식이 중요하다는걸 다시 느낌, 새로운 기술을 적용할때 기초적인 부분을 탄탄하게 쌓은 뒤 적용해야함을 느낌.