![](/img/trans.png)
[英]How to build Docker image for Testcontainers from Liquibase changelogs?
[英]Testcontainers: build docker image inside testcontainer
我正在使用testcontainers為我的 CI/CD 服務創建一些測試。
其中一項測試包含在測試容器內構建的 docker 個圖像。 它失敗,因為它無法訪問 docker 守護進程。
問題是如何共享本地 docker 守護進程到 testcontainer 或者如何以最簡單的方式在 testcontainer 內部運行 docker doemon?
所以,最后我通過將docker-dind
圖像作為附加容器運行來解決它
@Slf4j
@NoArgsConstructor
public class DockerContainer {
public static final String HOST = "test.docker.env";
private static GenericContainer<?> container;
public static void init() {
container = new GenericContainer<>(DockerImageName.parse("docker:20.10.14-dind"))
.withNetworkAliases(HOST)
.withNetwork(SHARED)
.withExposedPorts(2375)
.withEnv("DOCKER_TLS_CERTDIR", "")
.withPrivilegedMode(true)
.withLogConsumer(new Slf4jLogConsumer(log));
}
public static GenericContainer<?> getInstance() {
if (container == null) {
init();
}
return container;
}
}
並將 docker 主機添加到我的 CI 容器中:
this.container.dependsOn(DockerContainer.getInstance());
this.container.addEnv("DOCKER_HOST", String.format("tcp://%s:2375", DockerContainer.HOST));
現在效果很好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.