lifecycle icon indicating copy to clipboard operation
lifecycle copied to clipboard

Launcher fails to find default process when process type contains `.`

Open fg-j opened this issue 3 years ago • 0 comments
trafficstars

Summary

This was initially uncovered in https://github.com/paketo-buildpacks/dotnet-publish/pull/356, where the Paketo buildpacks use .NET Core project names as process types. Some of these look like Steeltoe.Demo. It's common for .NET project names to contain .. The buildpacks spec states that . is a valid character in a process type name. However, when process types contain this character, the launcher fails to identify the default process at app launch time. The launcher fails with the error

ERROR: failed to launch: determine start command: when there is no default process a command is required

Reproduction

Steps

Follow the reproduction steps in the README.md for this minimal sample buildpack + sample app: https://github.com/fg-j/explorations/tree/main/launcher-bug

Current behavior
docker run --rm -it sample-app
ERROR: failed to launch: determine start command: when there is no default process a command is required
Expected
docker run --rm -it sample-app
Default entrypoint process

Context

lifecycle version
pack builder inspect cnbs/sample-builder:bionic
Inspecting builder: cnbs/sample-builder:bionic

REMOTE:

Created By:
  Name: Pack CLI
  Version: 0.27.0+git-f4f5be1.build-3382

Trusted: No

Stack:
  ID: io.buildpacks.samples.stacks.bionic

Lifecycle:
  Version: 0.14.1
  Buildpack APIs:
    Deprecated: (none)
    Supported: 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8
  Platform APIs:
    Deprecated: (none)
    Supported: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9

Run Images:
  cnbs/sample-stack-run:bionic
platform version(s)
pack report
Pack:
  Version:  0.27.0+git-f4f5be1.build-3382
  OS/Arch:  darwin/amd64

Default Lifecycle Version:  0.14.1

Supported Platform APIs:  0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
anything else?

fg-j avatar Aug 15 '22 17:08 fg-j