Kaniko ODR with Paketo Buildpacks Process Type Failure

We’ve configured Waypoint to trigger builds on changes to the master branch in a test github repository housing a simple weather controller .NET 6 API. Running the build step locally seems to work fine (waypoint up / waypoint build), however, running with -local=false and triggering the remote ODR fails with the error message:

ERROR: failed to export: default process type ‘web’ not present in list [DemoApi]

Full Log:

  • Running build v33
  • Building Buildpack with kaniko…
  • Repository is available and ready: redacted/demoapi:1.0.5
    ! Executing kaniko…
    │ INFO[0000] Retrieving image manifest cloudfoundry/cnb
    │ INFO[0000] Retrieving image cloudfoundry/cnb from registry index.docker.io
    │ INFO[0000] Built cross stage deps: map
    │ INFO[0000] Retrieving image manifest cloudfoundry/cnb
    │ INFO[0000] Returning cached image manifest
    │ INFO[0000] Executing 0 build triggers
    │ INFO[0000] Building stage ‘cloudfoundry/cnb’ [idx: ‘0’, base-idx: ‘-1’]
    │ INFO[0000] Unpacking rootfs as cmd ADD --chown=1000 . /app requires it.
    │ INFO[0070] Using files from context: [/kaniko/tmp/waypoint1651900831]
    │ INFO[0070] ADD --chown=1000 . /app
    │ INFO[0070] Taking snapshot of files…
    │ INFO[0070] WORKDIR /app
    │ INFO[0070] Cmd: workdir
    │ INFO[0070] Changed working directory to /app
    │ INFO[0070] No files changed in this command, skipping snapshotting.
    │ INFO[0070] USER 1000
    │ INFO[0070] Cmd: USER
    │ INFO[0070] RUN mkdir /tmp/cache /tmp/layers && mkdir -p /app/bin &&
    │ /cnb/lifecycle/creator “-app=/app” "-cache-dir=/tmp/cache
    │ " “-gid=1000” “-layers=/tmp/layers” “-platform=/platform”
    │ “-previous-image=localhost:34895/redacted/demoapi:1.0.5” “-uid=1000”
    │ “-process-type=web” “localhost:34895/redacted/
    │ demoapi:1.0.5”
    │ INFO[0070] Initializing snapshotter …
    │ INFO[0070] Taking snapshot of full filesystem…
    │ INFO[0091] Cmd: /bin/sh
    │ INFO[0091] Args: [-c mkdir /tmp/cache /tmp/layers && mkdir -p /app/bin &&
    │ /cnb/lifecycle/creator “-app=/app” "-cache-dir=/tmp/cache
    │ " “-gid=1000” “-layers=/tmp/layers” “-platform=/platform”
    │ “-previous-image=localhost:34895/redacted/demoapi:1.0.5” “-uid=1000”
    │ “-process-type=web” “localhost:34895/redacted/
    │ demoapi:1.0.5”]
    │ INFO[0091] Util.Lookup returned: &{Uid:1000 Gid:1000 Username:cnb Name: HomeDir:
    │ /home/cnb}
    │ INFO[0091] Performing slow lookup of group ids for cnb
    │ INFO[0091] Running: [/bin/sh -c mkdir /tmp/cache /tmp/layers && mkdir -p
    │ /app/bin && /cnb/lifecycle/creator “-app=/app”
    │ “-cache-dir=/tmp/cache” “-gid=1000” “-layers=/tmp/layers” “-
    │ platform=/platform” “-previous-image=localhost:34895/redacted/demoapi:
    │ 1.0.5” “-uid=1000” “-process-type=web” “local
    │ host:34895/redacted/demoapi:1.0.5”]
    │ ===> DETECTING
    │ 6 of 12 buildpacks participating
    │ paketo-buildpacks/ca-certificates 3.5.1
    │ paketo-buildpacks/dotnet-core-sdk 0.12.0
    │ paketo-buildpacks/icu 0.6.0
    │ paketo-buildpacks/dotnet-publish 0.11.0
    │ paketo-buildpacks/dotnet-core-aspnet-runtime 0.2.0
    │ paketo-buildpacks/dotnet-execute 0.13.0
    │ ===> ANALYZING
    │ Previous image with name “localhost:34895/redacted/demoapi:1.0.5” not found
    │ ===> RESTORING
    │ ===> BUILDING

    │ Paketo Buildpack for CA Certificates 3.5.1
    GitHub - paketo-buildpacks/ca-certificates: A Cloud Native Buildpack that adds custom CA certificates to a build and a created image
    │ Launch Helper: Contributing to layer
    │ Creating /tmp/layers/paketo-buildpacks_ca-certificates/helper/exec.d/ca-cert
    │ ificates-helper
    │ Paketo Buildpack for .NET Core SDK 0.12.0
    │ Resolving .NET Core SDK version
    │ Candidate version sources (in priority order):
    │ DemoApi.csproj → “6.0.*”

    │ Selected .NET Core SDK version (using DemoApi.csproj): 6.0.404

    │ Executing build process
    │ Installing .NET Core SDK 6.0.404
    │ Completed in 20.263s

    │ Configuring build environment
    │ PATH → "/tmp/layers/paketo-buildpacks_dotnet-core-sdk/dotnet-core-sdk:$PATH
    │ "

    │ Configuring launch environment
    │ PATH → “/app/.dotnet_root:$PATH”

    │ Generating SBOM for /tmp/layers/paketo-buildpacks_dotnet-core-sdk/dotnet-core-
    │ sdk
    │ Completed in 4ms

    │ Paketo Buildpack for ICU 0.6.0
    │ Resolving ICU version
    │ Candidate version sources (in priority order):
    │ → “”

    │ Selected ICU version (using ): 72.1

    │ Executing build process
    │ Installing ICU
    │ Completed in 2.36s

    │ Generating SBOM for /tmp/layers/paketo-buildpacks_icu/icu
    │ Completed in 0s

    │ Paketo Buildpack for .NET Publish 0.11.0
    │ Executing build process
    │ Running ‘dotnet publish /app --configuration Release --runtime ubuntu.18.04-
    │ x64 --self-contained false --output /tmp/dotnet-publish-output3404165318’

    │ Welcome to .NET 6.0!
    │ ---------------------
    │ SDK Version: 6.0.404

    │ Telemetry
    │ ---------
    │ The .NET tools collect usage data in order to help us improve your experie
    │ nce. It is collected by Microsoft and shared with the community. You can opt-out
    │ of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to
    │ ‘1’ or ‘true’ using your favorite shell.

    │ Read more about .NET CLI Tools telemetry: Bing
    │ try

    │ ----------------
    │ Installed an ASP.NET Core HTTPS development certificate.
    │ To trust the certificate run ‘dotnet dev-certs https --trust’ (Windows and
    │ macOS only).
    │ Learn about HTTPS: Enforce HTTPS in ASP.NET Core | Microsoft Learn
    │ ----------------
    │ Write your first app: .NET Tutorial | Hello World in 5 minutes
    │ Find out what’s new: What's new in .NET 6 | Microsoft Learn
    │ Explore documentation: .NET documentation | Microsoft Learn
    │ Report issues and find source on GitHub: GitHub - dotnet/core: Home repository for .NET Core
    │ Use ‘dotnet --help’ to see available commands or visit: Join conversation
    │ net-cli
    │ --------------------------------------------------------------------------
    │ ------------
    │ MSBuild version 17.3.2+561848881 for .NET
    │ Determining projects to restore…
    │ Restored /app/DemoApi.csproj (in 2.23 sec).
    │ DemoApi → /app/bin/Release/net6.0/ubuntu.18.04-x64/DemoApi.dll
    │ DemoApi → /tmp/dotnet-publish-output3404165318/
    │ Completed in 12.371018429s

    │ Dividing build output into layers to optimize cache reuse

    │ Generating SBOM for /app
    │ Completed in 149ms

    │ Removing source code

    │ Paketo Buildpack for ASP.NET Core Runtime 0.2.0
    │ Resolving ASP.NET Core Runtime version
    │ Candidate version sources (in priority order):
    │ runtimeconfig.json → “6.0.0”
    │ → “”

    │ No exact version match found; attempting version roll-forward

    │ Selected ASP.NET Core Runtime version (using runtimeconfig.json): 6.0.12

    │ Executing build process
    │ Installing ASP.NET Core Runtime 6.0.12
    │ Completed in 3.989s

    │ Configuring launch environment
    │ DOTNET_ROOT → “/tmp/layers/paketo-buildpacks_dotnet-core-aspnet-runtime/dot
    │ net-core-aspnet-runtime”
    │ PATH → “/tmp/layers/paketo-buildpacks_dotnet-core-aspnet-runtime/dot
    │ net-core-aspnet-runtime:$PATH”

    │ Generating SBOM for /tmp/layers/paketo-buildpacks_dotnet-core-aspnet-runtime/d
    │ otnet-core-aspnet-runtime
    │ Completed in 0s

    │ Paketo Buildpack for .NET Execute 0.13.0
    │ Generating SBOM for /app
    │ Completed in 28ms

    │ Assigning launch processes:
    │ DemoApi (default): /app/DemoApi

    │ ===> EXPORTING
    │ Adding layer ‘paketo-buildpacks/ca-certificates:helper’
    │ Adding layer ‘paketo-buildpacks/dotnet-core-sdk:dotnet-env-var’
    │ Adding layer ‘paketo-buildpacks/icu:icu’
    │ Adding layer ‘paketo-buildpacks/dotnet-core-aspnet-runtime:dotnet-core-aspnet-ru
    │ ntime’
    │ Adding layer ‘paketo-buildpacks/dotnet-execute:port-chooser’
    │ Adding 3/3 app layer(s)
    │ Adding layer ‘launcher’
    │ Adding layer ‘config’
    │ Adding label ‘io.buildpacks.lifecycle.metadata’
    │ Adding label ‘io.buildpacks.build.metadata’
    │ Adding label ‘io.buildpacks.project.metadata’
    │ ERROR: failed to export: default process type ‘web’ not present in list [DemoApi
    │ ]
    │ error building image: error building stage: failed to execute command: waiting f
    │ or process to exit: exit status 246
    ! exit status 246

Hey there @david6 !

From reading the output you provided, this looks to be an error coming from pack specifically about your project code:

 ERROR: failed to export: default process type ‘web’ not present in list [DemoApi
│ ]
│ error building image: error building stage: failed to execute command: waiting f
│ or process to exit: exit status 246

It looks like pack is expecting some kind of process type ‘web’ that isn’t present in your project? This is likely a pack issue that needs to be resolved before Waypoint can use pack to build your application.

Can you share your waypoint.hcl? Did you customize the pack plugin in any way to change the default process type? Thanks!