paketo-buildpacks / dotnet-core

A Cloud Native Buildpack for .NET Core
Apache License 2.0
46 stars 4 forks source link

dotnet SDK fails (dotnet 8.0) #1186

Open msthtrifork opened 1 month ago

msthtrifork commented 1 month ago

When running the pack cli with the paketo builder with a dotnet 8.0 application in a Gitlab CI environment we (sometimes) get the following error:

===> ANALYZING
Image with name "tmp-cnb-image-8029869838" not found
===> DETECTING
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
target distro name/version labels not found, reading /etc/os-release file
8 of 12 buildpacks participating
paketo-buildpacks/ca-certificates            3.8.6
paketo-buildpacks/dotnet-core-sdk            0.15.9
paketo-buildpacks/icu                        0.7.22
paketo-buildpacks/dotnet-publish             0.12.43
paketo-buildpacks/dotnet-core-aspnet-runtime 0.5.7
paketo-buildpacks/dotnet-execute             0.14.42
paketo-buildpacks/procfile                   5.9.3
paketo-buildpacks/environment-variables      4.7.3
===> RESTORING
===> BUILDING
target distro name/version labels not found, reading /etc/os-release file
Paketo Buildpack for CA Certificates 3.8.6
  https://github.com/paketo-buildpacks/ca-certificates
  Build Configuration:
    $BP_EMBED_CERTS                    false  Embed certificates into the image
    $BP_ENABLE_RUNTIME_CERT_BINDING    true   Deprecated: Enable/disable certificate helper layer to add certs at runtime
    $BP_RUNTIME_CERT_BINDING_DISABLED  false  Disable certificate helper layer to add certs at runtime
  Launch Helper: Contributing to layer
    Creating /layers/paketo-buildpacks_ca-certificates/helper/exec.d/ca-certificates-helper
Paketo Buildpack for .NET Core SDK 0.15.9
  Resolving .NET Core SDK version
    Candidate version sources (in priority order):
      TestPipeLine.TestApi.csproj -> "8.0.*"
    Selected .NET Core SDK version (using TestPipeLine.TestApi.csproj): 8.0.401
  Executing build process
    Installing .NET Core SDK 8.0.401
unexpected EOF
ERROR: failed to build: exit status 1
ERROR: failed to build: executing lifecycle: failed with status code: 51

The error is:

unexpected EOF
ERROR: failed to build: exit status 1
ERROR: failed to build: executing lifecycle: failed with status code: 51

The most frustrating thing is that this error appears maybe every 2-3 builds, sometimes everything works and the image is built.

We don't get any more info of the error when running with:

BP_DOTNET_PUBLISH_FLAGS: "--verbosity=detailed" BP_LOG_LEVEL: "DEBUG"

What can "unexpected EOF" mean in this instance?

Expected Behavior

Dotnet 6.0 applications behave as they should and when we upgraded to dotnet 8 we see this error.

Current Behavior

unexpected EOF ERROR: failed to build: exit status 1 ERROR: failed to build: executing lifecycle: failed with status code: 51

Possible Solution

Maybe it has something to do with running docker-in-docker (with the pack cli) inside a kubernetes cluster (the gitlab runners run in the kubernetes cluster). I know its very complex ;-) We rooted out OOM in the pods.

Steps to Reproduce

I know its hard to reproduce. We are hoping for some guidance into further investigating this bug. I am also willing to submit PRs with a solution is possible.

Let me know if you want me to add further info!