Skip to content

Commit

Permalink
set SHELL from build config (#1419)
Browse files Browse the repository at this point in the history
* set SHELL from build config

* add changelog entry + unit test

related to fix for #1418

Co-authored-by: Ondřej Mach <ondrej.mach@certicon.cz>
Co-authored-by: Roland Huß <roland@ro14nd.de>
  • Loading branch information
3 people committed Mar 7, 2021
1 parent 34cc679 commit ceb143f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
3 changes: 2 additions & 1 deletion doc/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
- Loading Image tarball into docker daemon fails in JIB mode ([1385](https://github.com/fabric8io/docker-maven-plugin/issues/1385))
- `assembly.inline` is removed when external properties are enabled ([1082](https://github.com/fabric8io/docker-maven-plugin/issues/1082))
- Fix Support for Podman REST API(when configured) Related to ([1330](https://github.com/fabric8io/docker-maven-plugin/issues/1330))

- Fix ignored `SHELL` directive when provided in XML configuration (#1418)

* **0.34.1** (2020-09-27)
- Fix NPE with "skipPush" and no build configuration given ([#1381](https://github.com/fabric8io/docker-maven-plugin/issues/1381))
- upgrade to jib-core 0.15.0 ([#1378](https://github.com/fabric8io/docker-maven-plugin/issues/1378))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ private void interpolateDockerfile(File dockerFile, BuildDirs params, FixedStrin
void verifyGivenDockerfile(File dockerFile, BuildImageConfiguration buildConfig, FixedStringSearchInterpolator interpolator, Logger log) throws IOException {
AssemblyConfiguration assemblyConfig = buildConfig.getAssemblyConfiguration();
if (assemblyConfig == null) {
return;
return;
}

String name = assemblyConfig.getName();
Expand Down Expand Up @@ -411,6 +411,7 @@ DockerFileBuilder createDockerFileBuilder(BuildImageConfiguration buildConfig, A
.env(buildConfig.getEnv())
.labels(buildConfig.getLabels())
.expose(buildConfig.getPorts())
.shell(buildConfig.getShell())
.run(buildConfig.getRunCmds())
.volumes(buildConfig.getVolumes())
.user(buildConfig.getUser());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Collections;
import java.util.Date;

import io.fabric8.maven.docker.config.Arguments;
import io.fabric8.maven.docker.config.AssemblyConfiguration;
import io.fabric8.maven.docker.config.BuildImageConfiguration;
import io.fabric8.maven.docker.util.AnsiLogger;
Expand Down Expand Up @@ -39,6 +40,7 @@
import org.junit.Test;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class DockerAssemblyManagerTest {

Expand All @@ -60,15 +62,29 @@ public class DockerAssemblyManagerTest {
@Test
public void testNoAssembly() {
BuildImageConfiguration buildConfig = new BuildImageConfiguration();
AssemblyConfiguration assemblyConfig = buildConfig.getAssemblyConfiguration();

DockerFileBuilder builder = assemblyManager.createDockerFileBuilder(buildConfig, assemblyConfig);
String content = builder.content();
String content =
assemblyManager.createDockerFileBuilder(
buildConfig, buildConfig.getAssemblyConfiguration()).content();

assertFalse(content.contains("COPY"));
assertFalse(content.contains("VOLUME"));
}

@Test
public void testShellIsSet() {
BuildImageConfiguration buildConfig =
new BuildImageConfiguration.Builder().shell(
new Arguments.Builder().withShell("/bin/sh echo hello").build())
.build();

DockerFileBuilder builder =
assemblyManager.createDockerFileBuilder(buildConfig, buildConfig.getAssemblyConfiguration());
String content = builder.content();

assertTrue(content.contains("SHELL [\"/bin/sh\",\"echo\",\"hello\"]"));
}

@Test
public void assemblyFiles(@Injectable final MojoParameters mojoParams,
@Injectable final MavenProject project,
Expand Down

0 comments on commit ceb143f

Please sign in to comment.