Skip to content

Commit 25e61bf

Browse files
jrnorthrohanKanojia
authored andcommitted
Pull FROM images in relative path Dockerfiles
1 parent bd80572 commit 25e61bf

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

src/main/java/io/fabric8/maven/docker/service/BuildService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ private String extractBaseFromConfiguration(BuildImageConfiguration buildConfig)
370370
}
371371

372372
static List<String> extractBaseFromDockerfile(BuildImageConfiguration buildConfig, MojoParameters mojoParameters, Map<String, String> buildArgs) {
373-
if (buildConfig.getDockerFile() == null || !buildConfig.getDockerFile().exists()) {
373+
if (buildConfig.getDockerFile() == null || !buildConfig.getAbsoluteDockerFilePath(mojoParameters).exists()) {
374374
if (buildConfig.getFrom() != null && !buildConfig.getFrom().isEmpty()) {
375375
return Collections.singletonList(buildConfig.getFrom());
376376
}

src/test/java/io/fabric8/maven/docker/MojoTestBase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ protected void givenMavenProject(AbstractDockerMojo mojo) {
251251
mojo.project = mavenProject;
252252
mojo.log = ansiLogger;
253253
mojo.outputDirectory= "target/docker";
254+
mojo.sourceDirectory = "src/main/docker";
254255
mojo.authConfigFactory= authConfigFactory;
255256
mojo.session = session;
256257

src/test/java/io/fabric8/maven/docker/service/BuildServiceTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.File;
44
import java.nio.file.Files;
55
import java.nio.file.Path;
6+
import java.nio.file.Paths;
67
import java.util.Arrays;
78
import java.util.Collections;
89
import java.util.HashMap;
@@ -224,6 +225,38 @@ void testDockerfileWithBuildArgsInBuildConfig_ShouldPullImage() throws Exception
224225
verifyImagePull(buildConfig, pullManager, buildContext, "sample/base-image:latest");
225226
}
226227

228+
@Test
229+
void testRelativeDockerfile_ShouldPullImage() throws Exception {
230+
final BuildImageConfiguration buildConfig = new BuildImageConfiguration.Builder()
231+
.cleanup("false")
232+
.dockerFile("Dockerfile_from_simple")
233+
.filter("false")
234+
.build();
235+
236+
Mockito.when(mavenProject.getBasedir()).thenReturn(new File(getClass().getResource("/").getPath()));
237+
Mockito.when(mojoParameters.getSourceDirectory()).thenReturn("io/fabric8/maven/docker/util");
238+
239+
buildConfig.initAndValidate(logger);
240+
241+
imageConfig = new ImageConfiguration.Builder()
242+
.name("build-image")
243+
.alias("build-alias")
244+
.buildConfig(buildConfig)
245+
.build();
246+
247+
final ImagePullManager pullManager = new ImagePullManager(null, null, null);
248+
final BuildService.BuildContext buildContext = new BuildService.BuildContext.Builder()
249+
.mojoParameters(mojoParameters)
250+
.build();
251+
252+
mockMavenProject();
253+
254+
final File buildArchive = buildService.buildArchive(imageConfig, buildContext, "");
255+
buildService.buildImage(imageConfig, pullManager, buildContext, buildArchive);
256+
257+
verifyImagePull(buildConfig, pullManager, buildContext, "fabric8/s2i-java");
258+
}
259+
227260
@Test
228261
void testBuildImagePullsDefaultImageWhenNoFromImage() throws Exception {
229262
BuildImageConfiguration buildConfig = new BuildImageConfiguration.Builder()

0 commit comments

Comments
 (0)