Skip to content
This repository was archived by the owner on Jan 17, 2024. It is now read-only.

Commit 5136871

Browse files
committed
FIX Fix force pull for images
1 parent 39b0ecb commit 5136871

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

src/main/java/com/gpuopenanalytics/jenkins/remotedocker/DockerLauncher.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,4 +319,8 @@ public TaskListener getListener() {
319319
public AbstractBuild getBuild() {
320320
return build;
321321
}
322+
323+
public boolean isDebug() {
324+
return debug;
325+
}
322326
}

src/main/java/com/gpuopenanalytics/jenkins/remotedocker/job/DockerImageConfiguration.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@
2929
import com.gpuopenanalytics.jenkins.remotedocker.config.ConfigItem;
3030
import com.gpuopenanalytics.jenkins.remotedocker.config.VolumeConfiguration;
3131
import hudson.Extension;
32+
import hudson.Launcher;
3233
import hudson.model.AbstractBuild;
3334
import hudson.model.Descriptor;
3435
import hudson.util.ArgumentListBuilder;
3536
import org.apache.commons.lang.StringUtils;
3637
import org.kohsuke.stapler.DataBoundConstructor;
3738

3839
import javax.annotation.Nonnull;
40+
import java.io.IOException;
3941
import java.util.List;
4042

4143
/**
@@ -80,17 +82,28 @@ public void validate() throws Descriptor.FormException {
8082

8183
@Override
8284
public void setupImage(DockerLauncher launcher,
83-
String localWorkspace) {
84-
//No-op
85+
String localWorkspace) throws IOException, InterruptedException {
86+
if (isForcePull()) {
87+
ArgumentListBuilder args = new ArgumentListBuilder();
88+
String image = Utils.resolveVariables(launcher.getBuild(),
89+
getImage());
90+
args.add("docker", "pull", image);
91+
Launcher.ProcStarter proc = launcher.executeCommand(args)
92+
.stderr(launcher.getListener().getLogger());
93+
if (launcher.isDebug()) {
94+
proc = proc.stdout(launcher.getListener());
95+
}
96+
int status = proc.join();
97+
if (status != 0) {
98+
throw new IOException("Could not pull image: " + image);
99+
}
100+
}
85101
}
86102

87103
@Override
88104
public void addCreateArgs(DockerLauncher launcher,
89105
ArgumentListBuilder args,
90106
AbstractBuild build) {
91-
if (isForcePull()) {
92-
args.add("--pull");
93-
}
94107
getConfigItemList().stream()
95108
.forEach(item -> item.addCreateArgs(launcher, args, build));
96109
getVolumes().stream()

0 commit comments

Comments
 (0)