You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enabling support for running .Net Core applications on top of the Tiny stack required only a few, relatively simple changes to the existing buildpacks. I've outlined those changes below, but in summary, we need to 1) update the stack references that are supported across all the buildpack.toml files, 2) make some small changes to the internal implementatons to support running on top of a stack that does not have a shell, and 3) include a couple of new packages in the Tiny Run Image that are required at runtime.
I believe the biggest hurdle to supporting .Net Core applications on Tiny is the conversation around the additions to the Tiny stack. I don't know much about the goals of Tiny and whether these additions would be welcome or considered to be outside of the scope of the stack. FWIW, the additions here seem to only amount to an ~2MB increase in the stack image size.
After the exploration, I happened upon a list of prerequisites for Linux systems. The section on Alpine likely approximates much of what we are trying to do with Tiny. In that section, there are more than just the 2 libraries I found to be required. It is unclear what from this list would need to be pulled into Tiny.
Buildpack Changes
dotnet-core-aspnet
Add io.paketo.stacks.tiny to the stacks list in the buildpack.toml
Include io.paketo.stacks.tiny on the list of stacks for all metadata.dependencies in the buildpack.toml
diff --git a/buildpack.toml b/buildpack.toml
index 90a8df9..8111c2d 100644
--- a/buildpack.toml+++ b/buildpack.toml@@ -15,7 +15,7 @@ api = "0.2"
sha256 = "42caecb083385584978bc246987a4b86f88680ed8d2f950a131d3a27b1562870"
source = "https://download.visualstudio.microsoft.com/download/pr/1d6ae2ec-4cf8-4579-bdfb-18c723b1a560/48be79a406578690a3f062ff17d663f8/aspnetcore-runtime-2.1.21-linux-x64.tar.gz"
source_sha256 = "75dc48d0fe0cba6f80cfe017b9c3f57908efd87ffe3243956b59b8bfb421e369"
- stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3"]+ stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3", "io.paketo.stacks.tiny"]
uri = "https://buildpacks.cloudfoundry.org/dependencies/dotnet-aspnetcore/dotnet-aspnetcore_2.1.21_linux_x64_any-stack_42caecb0.tar.xz"
version = "2.1.21"
@@ -24,7 +24,7 @@ api = "0.2"
sha256 = "66e1b0f28c3603ae4ac1f120da0b23f40947e08eb7ed8e898549c1b2f4216a73"
source = "https://download.visualstudio.microsoft.com/download/pr/c1798274-4f4e-4e5b-8337-cb477add793c/2ab1c7f92fe497e07304b0b25c5f7845/aspnetcore-runtime-2.1.22-linux-x64.tar.gz"
source_sha256 = "053cb445608296a5c6d988980bdbfe1ee36602d1445fd67835d29eceab916ef0"
- stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3"]+ stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3", "io.paketo.stacks.tiny"]
uri = "https://buildpacks.cloudfoundry.org/dependencies/dotnet-aspnetcore/dotnet-aspnetcore_2.1.22_linux_x64_any-stack_66e1b0f2.tar.xz"
version = "2.1.22"
@@ -33,7 +33,7 @@ api = "0.2"
sha256 = "50ddfdfc8bb28984cdbac100c098bd61828f8706df72e7899d3c2b04c7628db0"
source = "https://download.visualstudio.microsoft.com/download/pr/e7d0601d-41b4-483f-b411-f2b42708054a/191b56b81e1830b413d0794728831eea/aspnetcore-runtime-3.1.7-linux-x64.tar.gz"
source_sha256 = "4f0ce619c1b1dbc8ccd799877b5d73158a07b1ebd1222d44b909bba13bdf735c"
- stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3"]+ stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3", "io.paketo.stacks.tiny"]
uri = "https://buildpacks.cloudfoundry.org/dependencies/dotnet-aspnetcore/dotnet-aspnetcore_3.1.7_linux_x64_any-stack_50ddfdfc.tar.xz"
version = "3.1.7"
@@ -42,7 +42,7 @@ api = "0.2"
sha256 = "8dcf99567d40190c69c875847f7ed9c7158ad78643a17089775ac0097965f09e"
source = "https://download.visualstudio.microsoft.com/download/pr/f7c8f82a-8c47-497d-875b-2ac210599ec5/e8aea0c195efed8a9aff2ba687db8c26/aspnetcore-runtime-3.1.8-linux-x64.tar.gz"
source_sha256 = "823f8ea555fd56ab40d56d423748036204c4540c08baa61de4462978a0c35583"
- stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3"]+ stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3", "io.paketo.stacks.tiny"]
uri = "https://buildpacks.cloudfoundry.org/dependencies/dotnet-aspnetcore/dotnet-aspnetcore_3.1.8_linux_x64_any-stack_8dcf9956.tar.xz"
version = "3.1.8"
@@ -51,3 +51,6 @@ api = "0.2"
[[stacks]]
id = "org.cloudfoundry.stacks.cflinuxfs3"
++[[stacks]]+ id = "io.paketo.stacks.tiny"
dotnet-core-build
Add io.paketo.stacks.tiny to the stacks list in the buildpack.toml
diff --git a/buildpack.toml b/buildpack.toml
index 1189416..4733c64 100644
--- a/buildpack.toml+++ b/buildpack.toml@@ -15,3 +15,6 @@ id = "org.cloudfoundry.stacks.cflinuxfs3"
[[stacks]]
id = "io.buildpacks.stacks.bionic"
++[[stacks]]+id = "io.paketo.stacks.tiny"
Include check for io.paketo.stacks.tiny in detect.go to include icu in the buildplan
Exploration Summary
Enabling support for running .Net Core applications on top of the Tiny stack required only a few, relatively simple changes to the existing buildpacks. I've outlined those changes below, but in summary, we need to 1) update the stack references that are supported across all the
buildpack.toml
files, 2) make some small changes to the internal implementatons to support running on top of a stack that does not have a shell, and 3) include a couple of new packages in the Tiny Run Image that are required at runtime.I believe the biggest hurdle to supporting .Net Core applications on Tiny is the conversation around the additions to the Tiny stack. I don't know much about the goals of Tiny and whether these additions would be welcome or considered to be outside of the scope of the stack. FWIW, the additions here seem to only amount to an ~2MB increase in the stack image size.
After the exploration, I happened upon a list of prerequisites for Linux systems. The section on Alpine likely approximates much of what we are trying to do with Tiny. In that section, there are more than just the 2 libraries I found to be required. It is unclear what from this list would need to be pulled into Tiny.
Buildpack Changes
dotnet-core-aspnet
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
io.paketo.stacks.tiny
on the list ofstacks
for allmetadata.dependencies
in thebuildpack.toml
dotnet-core-build
Add
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
Include check for
io.paketo.stacks.tiny
indetect.go
to includeicu
in the buildplandotnet-core-conf
Add
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
Include check for
io.paketo.stacks.tiny
indetect.go
to includeicu
in the buildplanRewrite how the start command is generated as
io.paketo.stacks.tiny
does not have a shell.dotnet-core-runtime
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
io.paketo.stacks.tiny
on the list ofstacks
for allmetadata.dependencies
in thebuildpack.toml
dotnet-core-sdk
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
io.paketo.stacks.tiny
on the list ofstacks
for allmetadata.dependencies
in thebuildpack.toml
icu
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
io.paketo.stacks.tiny
on the list ofstacks
for allmetadata.dependencies
in thebuildpack.toml
node-engine
io.paketo.stacks.tiny
to thestacks
list in thebuildpack.toml
io.paketo.stacks.tiny
on the list ofstacks
for allmetadata.dependencies
in thebuildpack.toml
Stack Changes
In order to get a .Net Core app to run on top of the
io.paketo.stacks.tiny
Run Image, we need to add a couple of packages:The text was updated successfully, but these errors were encountered: