The Procfile Buildpack is a Cloud Native Buildpack that turns the contents of a Procfile into process types.
This buildpack will participate if one or all of the following conditions are met:
- The application contains a
Procfile - A Binding exists with type
Procfileand secret containing aProcfile - The
BP_PROCFILE_DEFAULT_PROCESSenvironment variable is set to a non-empty value
The buildpack will do the following:
- When
BP_PROCFILE_DEFAULT_PROCESSis set, it will contribute thewebprocess type to the image. - Contribute the process types from one or both
Procfilefiles to the image.- If process types are identified from both Binding and file, the contents are merged into a single
Procfile. Commands from the Binding take precedence if there are duplicate types. - If process types are identified from environment and Binding or file, the contents are merged into a single
Procfile. Commands from Binding or file take precedence if there are duplicate types, with Binding taking precedence over file. - If the application's stack is
io.paketo.stacks.tinythe contents of theProcfilemust be single command with zero or more space delimited arguments. Argument values containing whitespace should be quoted. The resulting process will be executed directly and will not be parsed by the shell. - If the application's stack is not
io.paketo.stacks.tinythe contents ofProcfilewill be executed as a shell script.
- If process types are identified from both Binding and file, the contents are merged into a single
- If
BP_DIRECT_PROCESSis set totrue, the command will not be executed within a shell.- This behavior will become the default with the next major version, fulfilling RFC-0093. Afterwards, this option will be deprecated and removed eventually.
The BP_DIRECT_PROCESS environment variable can be used to opt-in in starting processes directly. The next major version of this buildpack will no longer support indirect processes and all processes will be started directly. Once processes are no longer started indirectly by default, the configuration BP_DIRECT_PROCESS will be removed since it will have no effect.
The buildpack optionally accepts the following bindings:
| Key | Type | Value | Description |
|---|---|---|---|
Procfile |
Procfile |
List of<process-type>: <command> entries |
The entries from this Binding will be merged with those from the application's Procfile, if both are present. The commands from this Binding take precedence over the application's Procfile if there are duplicate process-types. |
This buildpack is released under version 2.0 of the Apache License.