[Bug]: DockerDesktopClientProviderStrategy is always applicable
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 74/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- docker, java
- Bereich
- testing-qa
Rechercherichtung
Untersuche DockerDesktopClientProviderStrategy mit Fokus auf socketPath, isApplicable() und getTransportConfig(). Reproduziere zunächst die Strategiewahl unter macOS ohne Docker Desktop und überprüfe anschließend die Tests in der Nähe oder die Strategietestsuite. Als erledigt gilt die Aufgabe, wenn die Strategie nicht ausgewählt wird, sobald ihr Socket nicht verfügbar ist, und beim Versuch, Konfigurationen zu erstellen, keine NullPointerException auftritt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Module
Core
Testcontainers version
2.0.5
Using the latest Testcontainers version?
Yes
Host OS
macOS
Host Arch
ARM
Docker version
29.5.3
What happened?
DockerDesktopClientProviderStrategy is always applicable even when Docker Desktop is not installed at all. It happens because the socketPath field is annotated with @Getter(lazy = true) and so its actual type is AtomicReference, but the isApplicable() method checks nullability as this.socketPath != null.
@Getter(lazy = true)
@Nullable
private final Path socketPath = resolveSocketPath();
@Override
protected boolean isApplicable() {
return (SystemUtils.IS_OS_LINUX || SystemUtils.IS_OS_MAC) && this.socketPath != null;
}
Finally, the getTransportConfig() method fails with NPE as getSocketPath() returns null.
@Override
public TransportConfig getTransportConfig() throws InvalidConfigurationException {
return TransportConfig.builder().dockerHost(URI.create("unix://" + getSocketPath().toString())).build();
}
Relevant log output
[Test worker] ERROR o.t.d.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause NoSuchFileException (/var/run/docker.sock)
DockerDesktopClientProviderStrategy: failed with exception NullPointerException (Cannot invoke "java.nio.file.Path.toString()" because the return value of "org.testcontainers.dockerclient.DockerDesktopClientProviderStrategy.getSocketPath()" is null)
Additional Information
No response
- Vorherrschende Sprache
- Java
- Sterne
- 8.7k
- Forks
- 1.9k
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 9
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus testcontainers/testcontainers-java
-
type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
testcontainers/testcontainers-java#11997 · 1 Kommentar ·
-
[Enhancement]: Document why singleton containers are required under Spring's test context caching Offentype/enhancement
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
testcontainers/testcontainers-java#11967 ·
-
type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
testcontainers/testcontainers-java#11941 ·
-
type/enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
testcontainers/testcontainers-java#11578 ·
-
help wanted type/feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
testcontainers/testcontainers-java#8657 · 4 Kommentare ·
Alle Issues in testcontainers/testcontainers-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
bug needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 94/100
objectionary/hone-maven-plugin#1061 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
spring-projects/spring-modulith#1895 ·