Commit 56bc0eb9 authored by Scott Frederick's avatar Scott Frederick

Use canonical path for CNB builder lifecycle binaries

This commit changes the path used to invoke lifecycle binaries in
CNB builders from `/lifecycle` to `/cnb/lifecycle` to conform to
the CNB spec. This will ensure the build plugin image-building
goals and tasks are compatible with future versions of builders
that may not support both paths.

See gh-23009
parent 8fd9c685
......@@ -30,6 +30,7 @@ import org.springframework.util.StringUtils;
* An individual build phase executed as part of a {@link Lifecycle} run.
*
* @author Phillip Webb
* @author Scott Frederick
*/
class Phase {
......@@ -112,7 +113,7 @@ class Phase {
update.withUser("root");
update.withBind(DOMAIN_SOCKET_PATH, DOMAIN_SOCKET_PATH);
}
update.withCommand("/lifecycle/" + this.name, StringUtils.toStringArray(this.args));
update.withCommand("/cnb/lifecycle/" + this.name, StringUtils.toStringArray(this.args));
update.withLabel("author", "spring-boot");
this.binds.forEach(update::withBind);
}
......
......@@ -190,7 +190,7 @@ class LifecycleTests {
}
private void assertPhaseWasRun(String name, IOConsumer<ContainerConfig> configConsumer) throws IOException {
ContainerReference containerReference = ContainerReference.of("lifecycle-" + name);
ContainerReference containerReference = ContainerReference.of("cnb-lifecycle-" + name);
verify(this.docker.container()).start(containerReference);
verify(this.docker.container()).logs(eq(containerReference), any());
verify(this.docker.container()).remove(containerReference, true);
......
......@@ -30,6 +30,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
* Tests for {@link Phase}.
*
* @author Phillip Webb
* @author Scott Frederick
*/
class PhaseTests {
......@@ -52,7 +53,7 @@ class PhaseTests {
Phase phase = new Phase("test", false);
Update update = mock(Update.class);
phase.apply(update);
verify(update).withCommand("/lifecycle/test", NO_ARGS);
verify(update).withCommand("/cnb/lifecycle/test", NO_ARGS);
verify(update).withLabel("author", "spring-boot");
verifyNoMoreInteractions(update);
}
......@@ -65,7 +66,7 @@ class PhaseTests {
phase.apply(update);
verify(update).withUser("root");
verify(update).withBind("/var/run/docker.sock", "/var/run/docker.sock");
verify(update).withCommand("/lifecycle/test", NO_ARGS);
verify(update).withCommand("/cnb/lifecycle/test", NO_ARGS);
verify(update).withLabel("author", "spring-boot");
verifyNoMoreInteractions(update);
}
......@@ -76,7 +77,7 @@ class PhaseTests {
phase.withLogLevelArg();
Update update = mock(Update.class);
phase.apply(update);
verify(update).withCommand("/lifecycle/test", "-log-level", "debug");
verify(update).withCommand("/cnb/lifecycle/test", "-log-level", "debug");
verify(update).withLabel("author", "spring-boot");
verifyNoMoreInteractions(update);
}
......@@ -87,7 +88,7 @@ class PhaseTests {
phase.withLogLevelArg();
Update update = mock(Update.class);
phase.apply(update);
verify(update).withCommand("/lifecycle/test");
verify(update).withCommand("/cnb/lifecycle/test");
verify(update).withLabel("author", "spring-boot");
verifyNoMoreInteractions(update);
}
......@@ -98,7 +99,7 @@ class PhaseTests {
phase.withArgs("a", "b", "c");
Update update = mock(Update.class);
phase.apply(update);
verify(update).withCommand("/lifecycle/test", "a", "b", "c");
verify(update).withCommand("/cnb/lifecycle/test", "a", "b", "c");
verify(update).withLabel("author", "spring-boot");
verifyNoMoreInteractions(update);
}
......@@ -110,7 +111,7 @@ class PhaseTests {
phase.withBinds(volumeName, "/test");
Update update = mock(Update.class);
phase.apply(update);
verify(update).withCommand("/lifecycle/test");
verify(update).withCommand("/cnb/lifecycle/test");
verify(update).withLabel("author", "spring-boot");
verify(update).withBind(volumeName, "/test");
verifyNoMoreInteractions(update);
......
{
"User" : "root",
"Image" : "pack.local/ephemeral-builder",
"Cmd" : [ "/lifecycle/creator", "-app", "/workspace", "-platform", "/platform", "-run-image", "docker.io/cloudfoundry/run:latest", "-layers", "/layers", "-cache-dir", "/cache", "-launch-cache", "/launch-cache", "-daemon", "-skip-restore", "docker.io/library/my-application:latest" ],
"Cmd" : [ "/cnb/lifecycle/creator", "-app", "/workspace", "-platform", "/platform", "-run-image", "docker.io/cloudfoundry/run:latest", "-layers", "/layers", "-cache-dir", "/cache", "-launch-cache", "/launch-cache", "-daemon", "-skip-restore", "docker.io/library/my-application:latest" ],
"Labels" : {
"author" : "spring-boot"
},
......
{
"User" : "root",
"Image" : "pack.local/ephemeral-builder",
"Cmd" : [ "/lifecycle/creator", "-app", "/workspace", "-platform", "/platform", "-run-image", "docker.io/cloudfoundry/run:latest", "-layers", "/layers", "-cache-dir", "/cache", "-launch-cache", "/launch-cache", "-daemon", "docker.io/library/my-application:latest" ],
"Cmd" : [ "/cnb/lifecycle/creator", "-app", "/workspace", "-platform", "/platform", "-run-image", "docker.io/cloudfoundry/run:latest", "-layers", "/layers", "-cache-dir", "/cache", "-launch-cache", "/launch-cache", "-daemon", "docker.io/library/my-application:latest" ],
"Labels" : {
"author" : "spring-boot"
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment