docker

DEV/Node.js

[Nest.js/Prisma] e2e 테스트 시 docker 로 격리된 MySQL 환경 세팅

들어가며 안녕하세요. 잡채입니다 🙇🏻 얼마 전 사이드 프로젝트 서버 작업을 하며, e2e 테스팅 중 docker 를 사용해 MySQL DB를 완전히 격리해 테스트 할 수 있도록 환경을 세팅해보았습니다. e2e 테스트 시 애플리케이션의 처음과 끝을 흐름에 따라 모두 테스트 하기 때문에 당연히 DB 접근을 해야합니다. 현재 프로젝트의 경우 개발용 MySQL DB 를 RDS에 올려 사용 중인데 아무리 개발용 데이터베이스라 하여도 여러번 진행되는 e2e 테스트 마다 테스트용 데이터들이 쌓이거나 바뀌도록 구성할 수는 없었습니다. 또한, 현재 사용중인 데이터를 잘못하여 update 시키거나 삭제할 수도 있기 때문에 e2e 테스트 중에는 격리된 데이터 베이스를 새로 구성하고 싶었습니다. 여러 자료를 찾아보던 중 pr..

DEV/docker

Nest.js docker 이미지 최적화 대작전 (Feat. no space left on device, multi-stage build)

들어가며 사이드 프로젝트로 리뉴얼 중인 cherish 개발용 테스트 서버를 배포하던 중 삽질을 하던 경험을 풀어보려한다. 배포는 aws 서비스를 사용해 진행했고, 설계한 테스트 서버 전체 구조는 다음 이미지와 같다. 전체적으로 Beanstalk 환경에 ELB를 사용한 오토 스케일링 그룹을 만들고, 내부적으로는 EC2, docker 를 사용해 Nest.js 앱을 배포하는 구조이다. Beanstalk 으로 보내는 과정은 Github Actions 를 통해 자동화해보았다. 이 과정에서 배포에 실패하는 다양한 문제를 겪었는데 그 중 No space left on device 라는 킹받는 이슈를 해결하기까지 과정을 적어보려한다. 아직 docker 나 인프라 관련 지식이 많이 부족해 틀린 부분이 있을 수 있어 발견..

jobchae
'docker' 태그의 글 목록