Me gustaría ejecutar algunas pruebas de integración que incluirían la configuración de un entorno completo con org.testcontainers Docker Compose Module. Soy nuevo en las pruebas de Windows y Docker, lo mismo con los contenedores de prueba.
Uso de versiones:
Mi código se parece a lo siguiente:
@ClassRule public static DockerComposeContainer environment = new DockerComposeContainer( new File("C:\\dev\\myproject\\myapp\\docker-compose\\docker-compose.env.yml"), new File("C:\\dev\\myproject\\myapp\\docker-compose\\docker-compose.yml")) .withExposedService("myservice_1", 9999) .withLocalCompose(true);Mis archivos de redacción se parecen a esto.
services: myservice: image: myapp/myservice:latest hostname: myservice volumes: - ../volumeDir:/app/volumeDir - ../config:/app/config expose: - 9999 ports: - 9999:9999 command: -Dspring.liquibase.enabled=true networks: - internetParece un error de enlace, la parte más significativa del seguimiento de la pila:
> java.lang.RuntimeException: java.lang.RuntimeException: org.testcontainers.shaded.com.fasterxml.jackson.databind.exc.ValueInstantiationException: > Cannot construct instance of `com.github.dockerjava.api.model.Binds`, > problem: Error parsing Bind > 'C:\dev\myproject\myapp\volumeDir:/app/volumeDir:rw' > at [Source: (org.testcontainers.shaded.okio.RealBufferedSource$1); line: 1, > column: 1369] (through reference chain: > com.github.dockerjava.api.command.InspectContainerResponse["HostConfig"]->com.github.dockerjava.api.model.HostConfig["Binds"]) > at org.rnorth.ducttape.timeouts.Timeouts.callFuture(Timeouts.java:68) > at org.rnorth.ducttape.timeouts.Timeouts.doWithTimeout(Timeouts.java:60) > at org.testcontainers.containers.wait.strategy.WaitAllStrategy.waitUntilReady(WaitAllStrategy.java:53) > ...He intentado cambiar la ruta a absoluta sin ninguna diferencia. ¿Tiene alguna idea de qué puede hacer que este enlace no se pueda analizar?
Este error se debe a un problema actual con Testcontainers y la versión reciente de Docker para Windows. Ya son conscientes de ello yparece que una solución está cerca de fusionarse .
ACTUALIZACIÓN : Ya está disponible la versión 1.15.1 que corrige este error.