मैं कुछ एकीकृत परीक्षण चलाना चाहता हूं जिसमें org.testcontainers डॉकर कंपोज़ मॉड्यूल के साथ एक संपूर्ण वातावरण स्थापित करना शामिल होगा। मैं विंडोज़ और डॉकर परीक्षण के लिए नया हूं, टेस्टकंटेनर्स के साथ ही।

संस्करणों का उपयोग करना:

  • डॉकर डेस्कटॉप समुदाय: 2.5.0.0
  • org.testcontainers:testcontainers:1.15.0
  • org.springframework.boot 2.3.4.

मेरा कोड निम्न जैसा दिखता है:

@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);

मेरी लिखें फ़ाइलें कुछ इस तरह दिखती हैं।

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:
    - internet

ऐसा लगता है कि कुछ बाध्यकारी त्रुटि, स्टैकट्रैक का सबसे महत्वपूर्ण हिस्सा है:

>     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)
>     ...

मैंने बिना किसी अंतर के निरपेक्ष का रास्ता बदलने की कोशिश की है। क्या आपके पास कोई विचार है जो इस बंधन को अप्राप्य बना सकता है?

2
Five 25 नवम्बर 2020, 01:35

1 उत्तर

सबसे बढ़िया उत्तर

यह त्रुटि टेस्टकंटेनर्स के साथ एक मौजूदा समस्या और विंडोज संस्करण के लिए हाल ही में डॉकर के कारण है। वे पहले से ही इसके बारे में जानते हैं और एक फिक्स विलय होने के करीब लगता है

अपडेट करें: वर्शन 1.15.1 अब उपलब्ध है जो इस बग को ठीक करता है।

2
rieckpil 12 पद 2020, 15:49