testcontainers 使用内置的docker环境不使用本机的docker环境
使用 Testcontainers 库时,默认情况下会使用本机的 Docker 环境。但是,Testcontainers 也提供了一种方法来使用内置的 Docker 环境,而不是依赖于本机的 Docker。
要使用内置的 Docker 环境,你需要使用一个支持内置 Docker 的 Testcontainers 启动器。目前,有两个支持内置 Docker 的启动器可供选择:LocalStack 和 Ryuk。
- 使用 LocalStack 启动器:
@Testcontainers
class MyTest {
@Container
private static final LocalStackContainer localStack = new LocalStackContainer().withServices(Service.S3);
// 测试代码...
}
这将在测试之前启动一个内置的 Docker 容器,并使用 LocalStack 模拟 S3 服务。这样,你就可以在测试中使用本地模拟的 S3 服务而不是依赖于本机的 Docker 环境。
- 使用 Ryuk 启动器:
@Testcontainers
class MyTest {
@Container
private static final RyukContainer ryuk = new RyukContainer();
// 测试代码...
}
这将在测试之前启动一个内置的 Docker 容器,并使用 Ryuk 来管理容器的生命周期。这样,你就可以在测试中使用内置的 Docker 环境而不依赖于本机的 Docker。
请注意,使用内置的 Docker 环境可能会导致一些限制和不便,因为它不像本机的 Docker 环境那样强大和灵活。在选择是否使用内置的 Docker 环境时,请考虑你的具体需求和测试场景
原文地址: http://www.cveoy.top/t/topic/h06Z 著作权归作者所有。请勿转载和采集!