TestContainer를 사용하여 즉석에서 Couchbase Docker 이미지 생성하기

어제 저는 카우치베이스와 테스트 컨테이너로 단위 및 통합 테스트를 수행하는 방법. 이러한 테스트의 전제 조건 중 하나는 이미 구축된 이미지가 있어야 한다는 것이었습니다. 하지만 그런 이미지가 없는 것으로 밝혀졌습니다. 테스트를 실행하기 직전에 TestContainer를 사용하여 자신만의 사용자 지정 이미지를 빌드할 수 있으며 매우 쉽습니다. 덕분에 세르게이 이고로프 길을 알려주셔서 감사합니다!

즉석에서 이미지 만들기

이전 예제에서는 다음 코드를 사용하여 이미지를 인스턴스화했습니다:

GenericContainer 생성자는 문자열을 매개변수로 받습니다. 이 문자열은 테스트하려는 컨테이너의 이름입니다. 하지만 GenericContainer 생성자는 Future도 받습니다. ImageFromDockerfile 클래스가 바로 그것입니다. 이 클래스의 Docker 이미지가 사용자가 지정한 매개변수와 비동기적으로 생성됩니다.

여기서는 필요한 모든 것을 프로젝트의 리소스 폴더에 복사하여 클래스 경로에서 모두 액세스할 수 있도록 했습니다. 그래서 저는 위드파일로부터 클래스 경로 메서드를 사용합니다. 문자열, 절대 경로 또는 파일에서 파일을 가져올 수도 있습니다. 이에 대한 자세한 내용은 다음에서 확인할 수 있습니다. TestContainers 문서.

그러면 테스트를 실행하기 전에 Docker 이미지가 자동으로 빌드됩니다. 기본적으로 이미지는 종료 시 삭제되지만 플래그를 전달하여 이미지를 유지하여 항상 다시 빌드하지 않도록 할 수 있습니다. 이는 테스트 전략에 따라 달라집니다.

문제 해결

이 글을 작성하는 동안 사소한 문제가 발생했습니다. 이미지 생성에 사용되었던 모든 리소스의 권한이 손실되어서 RUN chmod +x 를 복사하는 모든 리소스에 대해. 이 문제는 이제 알려진 문제이며 TestContainer의 친절하고 반응이 빠른 사람들이 이 문제를 해결하기 위해 노력하고 있습니다. 다음에서 그들과 대화를 나눌 수 있습니다. 슬랙 채널에서 카우치베이스 직원과 채팅을 할 수 있는 것과 마찬가지로 커뮤니티 채널.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.