- TestContainers를 통해 개발 환경에서 Spring 애플리케이션 실행 시 mariaDB 컨테이너를 실행하도록 한다.
- TestContainers를 통해 이미 mariaDB 컨테이너가 실행 중이라면 재사용하도록 한다.
의존성 추가#
- 일반적으로 TestContainers는 테스트 환경에 사용하지만, Spring 애플리케이션이 dev 프로파일로 실행될 때 사용하는 것이 목표여서 아래와 같이 의존성을 추가한다.
- mariaDB를 사용하기 위한 JDBC Driver도 함께 의존성 추가한다.
dependencies {
//...
implementation("org.mariadb.jdbc:mariadb-java-client")
implementation("org.springframework.boot:spring-boot-testcontainers")
implementation("org.testcontainers:mariadb")
//...
}
컨테이너 자동 실행#
- Spring Boot 3.1부터
Container
클래스를 Bean 등록하면, 자동으로 컨테이너를 실행해준다. @ServiceConnection
어노테이션이 있으면 생성된 컨테이너를 기준으로 ConnectionDetails
을 Bean으로 자동으로 등록해준다.- 이미 실행중인 컨테이너가 있다면 이를 계속 사용하기 위해
withReuse(true)
를 호출한다.
@Configuration(proxyBeanMethods = false)
@Profile("dev")
class ContainerConfiguration {
@Bean
@ServiceConnection
fun mariaDbContainer(): MariaDBContainer<*> {
return MariaDBContainer("mariadb:10.11.6").withReuse(true)
}
}
참고 자료#