Skip to content

Commit ff6e332

Browse files
authored
fix #1179 (#1182)
1 parent 61e2606 commit ff6e332

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/main/java/io/jenkins/docker/connector/DockerComputerAttachConnector.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import com.github.dockerjava.api.command.ExecCreateCmd;
1212
import com.github.dockerjava.api.command.ExecCreateCmdResponse;
1313
import com.github.dockerjava.api.command.InspectContainerResponse;
14+
import com.github.dockerjava.api.command.VersionCmd;
15+
import com.github.dockerjava.api.model.Version;
1416
import com.google.common.base.Joiner;
1517
import edu.umd.cs.findbugs.annotations.CheckForNull;
1618
import edu.umd.cs.findbugs.annotations.NonNull;
@@ -298,25 +300,30 @@ public void launch(final SlaveComputer computer, TaskListener listener)
298300
+ Joiner.on(" ").join(resolvedEntryPointCmd));
299301

300302
final String execId;
303+
final String actualApiVersion;
301304
try (final DockerClient client = api.getClient()) {
302-
final ExecCreateCmd cmd = client.execCreateCmd(containerId)
305+
final ExecCreateCmd execCmd = client.execCreateCmd(containerId)
303306
.withAttachStdin(true)
304307
.withAttachStdout(true)
305308
.withAttachStderr(true)
306309
.withTty(false)
307310
.withCmd(resolvedEntryPointCmd);
308311
if (StringUtils.isNotBlank(userOrNull)) {
309-
cmd.withUser(userOrNull);
312+
execCmd.withUser(userOrNull);
310313
}
311-
final ExecCreateCmdResponse exec = cmd.exec();
312-
execId = exec.getId();
314+
final ExecCreateCmdResponse execResponse = execCmd.exec();
315+
execId = execResponse.getId();
316+
317+
final VersionCmd versionCmd = client.versionCmd();
318+
final Version version = versionCmd.exec();
319+
actualApiVersion = version.getApiVersion();
313320
}
314321
final String js = "{ \"Detach\": false, \"Tty\": false }";
315322
final Socket socket = api.getSocket();
316323
final OutputStream out = socket.getOutputStream();
317324
final InputStream in = socket.getInputStream();
318325
final PrintWriter w = new PrintWriter(new OutputStreamWriter(out, StandardCharsets.US_ASCII));
319-
w.println("POST /v1.32/exec/" + execId + "/start HTTP/1.1");
326+
w.println("POST /v" + actualApiVersion + "/exec/" + execId + "/start HTTP/1.1");
320327
w.println("Host: docker.sock");
321328
w.println("Content-Type: application/json");
322329
w.println("Upgrade: tcp");

0 commit comments

Comments
 (0)