testcontainers / testcontainers/testcontainers-java

[Enhancement]: make execInContainer asynchronous

Offen
#6,388 0 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

type/enhancement
Vorherrschende Sprache
Java
Sterne
8.7k
Forks
1.9k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
9

Beschreibung

Module

Core

Proposal

In function org.testcontainers.containers.ExecInContainerPattern#execInContainer(com.github.dockerjava.api.DockerClient, com.github.dockerjava.api.command.InspectContainerResponse, java.nio.charset.Charset, java.lang.String...)

I found this part of code:

        try (FrameConsumerResultCallback callback = new FrameConsumerResultCallback()) {
            callback.addConsumer(OutputFrame.OutputType.STDOUT, stdoutConsumer);
            callback.addConsumer(OutputFrame.OutputType.STDERR, stderrConsumer);

            dockerClient.execStartCmd(execCreateCmdResponse.getId()).exec(callback).awaitCompletion();
        }

It seems like this part of code is producing the result in a synchronous and blocking pattern.

This seems to have the impact on the logging and makes it impossible to see the logs as they arrive.

Is it possible to make this asynchronous?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit org.testcontainers.containers.ExecInContainerPattern#execInContainer und untersuche den gezeigten Ablauf von FrameConsumerResultCallback und execStartCmd. Ermittle, wie die asynchrone Ausführung die Ausgabe während ihres Eintreffens verfügbar machen sollte, ohne zu blockieren, und überprüfe anschließend, dass das Logging während der Ausführung beobachtbar ist und das bestehende Verhalten des Ausführungsergebnisses weiterhin abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, java
Bereich
testing
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.