GithubHelp home page GithubHelp logo

httpd's Introduction

Apache HTTP Server Cloud Native Buildpack

The HTTPD CNB provides the Apache HTTP Server binary distribution. The buildpack installs the HTTPD binary distribution onto the $PATH which makes it available for subsequent buildpacks, and sets up the start command which signals httpd to start.

A usage example can be found in the samples repository under the httpd directory.

The HTTPD buildpack is compatible with the following builder(s):

Integration

The Apache HTTPD CNB provides httpd as a dependency. Downstream buildpacks, like php-web can require the httpd dependency by generating a Build Plan TOML file that looks like the following:

[[requires]]

  # The name of the Apache HTTPD dependency is "httpd". This value is considered
  # part of the public API for the buildpack and will not change without a plan
  # for deprecation.
  name = "httpd"

  # The version of the Apache HTTPD dependency is not required. In the case it
  # is not specified, the buildpack will provide the newest version, which can
  # be seen in the buildpack.toml file.
  # If you wish to request a specific version, the buildpack supports
  # specifying a semver constraint in the form of "2.*", "2.4.*", or even
  # "2.4.43".
  version = "2.4.43"

  # The Apache HTTPD buildpack supports some non-required metadata options.
  [requires.metadata]

    # Setting the launch flag to true will ensure that the Apache HTTPD
    # dependency is available on the $PATH for the running application. If you
    # are writing an application that needs to run Apache HTTPD at runtime, this
    # flag should be set to true.
    launch = true

Usage

To package this buildpack for consumption:

$ ./scripts/package.sh -v <version>

Configurations

Specifying the HTTP Server version through buildpack.yml configuration will be deprecated in Apache HTTP Server Buildpack v1.0.0.

To migrate from using buildpack.yml please set the following environment variables at build time either directly (ex. pack build my-app --env BP_ENVIRONMENT_VARIABLE=some-value) or through a project.toml file

BP_HTTPD_VERSION

The BP_HTTPD_VERSION variable allows you to specify the version of Apache HTTP Server that is installed.

BP_HTTPD_VERSION=2.4.43

This will replace the following structure in buildpack.yml:

httpd:
  # this allows you to specify a version constraint for the httpd dependency
  # any valid semver constraints (e.g. 2.* and 2.4.*) are also acceptable
  version: "2.4.43"

Zero Configuration Variables

The Apache HTTPD Server Buildpack now supports the ability for a user to just provide a static application without having a httpd.conf and the buildpack will now generate a default httpd.conf. In order to activate this workflow the BP_WEB_SERVER environment variable must be set to httpd.

BP_WEB_SERVER=httpd

While this will provide a default configuration there are a few modifications that can be made to this httpd.conf by setting the following environment variables and service bindings.

BP_WEB_SERVER_ROOT

The BP_WEB_SERVER_ROOT variable allows you to modify the location of the static files served by the web server by assigning the BP_WEB_SERVER_ROOT variable with an absolute file path or a file path relative to /workspace. For example, setting BP_WEB_SERVER_ROOT=my-build-directory would change the file path of served files to /workspace/my-build-directory.

BP_WEB_SERVER_ROOT=htdocs

BP_WEB_SERVER_ENABLE_PUSH_STATE

The BP_WEB_SERVER_ENABLE_PUSH_STATE variable to enable push state routing functionality.

BP_WEB_SERVER_ENABLE_PUSH_STATE=true

BP_WEB_SERVER_FORCE_HTTPS

The BP_WEB_SERVE_FORCE_HTTPS variable allows to enforce HTTPS for server connnections.

BP_WEB_SERVER_FORCE_HTTPS=true

Basic Authentication

You are able to provide basic authentication credentials via an htpasswd type service binding specifying the contents of a .htpasswd file. The service binding will have the following directory structure.

binding
├── type
└── .htpasswd

Stack support

The HTTPD buildpack requires that you use the Paketo Full builder to build applications. The buildpack does not run on the Base builder because it requires libexpat1 that's not present on the Base stack.

httpd's People

Contributors

arjun024 avatar brayanhenao avatar cf-buildpacks-eng avatar dependabot-preview[bot] avatar dependabot[bot] avatar dfreilich avatar dumez-k avatar dwillist avatar foresteckhardt avatar joshzarrabi avatar kardolus avatar mdelillo avatar ndon55555 avatar paketo-bot avatar robdimsdale avatar ryanmoran avatar sophiewigmore avatar thitch97 avatar tisvictress avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

httpd's Issues

Compile dependency on actual stack images

The dependency that this buildpack provides (httpd) is compiled on an image that isn't actually the stack image. This could result in subtle bugs - like features not being enabled or enabled features not being available at run-time - due to differences in configuration and available libraries. We should compile the dependency on the actual stack base image rather than a similar image.

Allow HTTPS to be enforced via environment variable

Summary

Implement the HTTPS Enforcement configuration settings for Web Servers RFC0004.

Proposal

When the BP_WEB_SERVER_FORCE_HTTPS environment variable is set to true, the buildpack will generate configuration in the httpd.conf file that forces http requests to be redirected to https endpoints. Check out https://cwiki.apache.org/confluence/display/httpd/redirectssl for details on how to configure this in httpd.conf.

Outcome

Given an application with no httpd.conf file, when we run pack build myapp --buildpack paketo-buildpacks/httpd --env BP_WEB_SERVER=httpd --env BP_WEB_SERVER_FORCE_HTTPS=true, then we should see the application can be built and that the static files are served by HTTPD with http requests being redirected to https.

Allow the directory served by default to be set via environment variable

Summary

Implement the Static File Location configuration settings for Web Servers RFC0004.

By the default, when the BP_WEB_SERVER environment variable is set to httpd, the buildpack will generate an httpd.conf file that serves the static files located at /workspace/public. We should allow users to change this default value by setting the BP_WEB_SERVER_ROOT environment variable.

Proposal

When the user sets this value, we will change our default from serving /workspace/public to the value the user sets. If this path is absolute, it should be set literally. If the path is relative, it should be assumed to be relative to the /workspace directory.

Outcome

Given an application with no httpd.conf file and static files in the /build directory, when we run pack build myapp --buildpack paketo-buildpacks/httpd --env BP_WEB_SERVER=httpd --env BP_WEB_SERVER_ROOT=./build, then we should see the application can be built and that the static files are served by HTTPD.

httpd 0.3.0 BP_LIVE_RELOAD_ENABLED=true fails with "no buildpack groups passed detection"

What happened?

Output

pack build example-httpd-image:tilt-build-pack-caching --path . --builder paketobuildpacks/builder:full --pull-policy if-not-present --buildpack gcr.io/paketo-buildpacks/httpd:0.3.0 --env BP_LIVE_RELOAD_ENABLED=true 
===> ANALYZING
===> DETECTING
ERROR: No buildpack groups passed detection.
ERROR: Please check that you are running against the correct path.
ERROR: failed to detect: no buildpacks participating
ERROR: failed to build: executing lifecycle: failed with status code: 20

Build Configuration

  • What platform (pack, kpack, tekton buildpacks plugin, etc.) are you
    using? Please include a version.
$ pack version
0.24.0+git-79a40b7.build-3148
  • Can you provide a sample app or relevant configuration (buildpack.yml,
    nginx.conf, etc.)?

The app is here:

https://github.com/tilt-dev/tilt-extensions/tree/master/pack/test

Note that running with httpd 0.2.1 works fine:

pack build example-httpd-image:tilt-build-pack-caching --path . --builder paketobuildpacks/builder:full --pull-policy if-not-present --buildpack gcr.io/paketo-buildpacks/httpd:0.2.1 --env BP_LIVE_RELOAD_ENABLED=true 

Leaving off BP_LIVE_RELOAD_ENABLED also works.

Checklist

  • I have included log output.
  • The log output includes an error message.
  • I have included steps for reproduction.

Convert into dependency providing buildpack

Convert into dependency providing buildpack

Describe the Enhancement

RFC 0007 has been approved and merged.

Possible Solution

During build the httpd buildpack should only provide its dependency. The httpd buildpack should no longer do any additional configuration. The temporary development build plan API can be removed at this time.

Motivation

This is part of paketo-buildpacks/web-servers#128

Upgrade to buildpack API > 0.6

The upstream Cloud Native Buildpacks project has a proposal to deprecate Buildpack APIs <= 0.6. This buildpack's API version will need to be upgraded so it remains supported by the lifecycle.

Migrate docs into a Hugo module

In order to locate Paketo documentation closer to the code it documents, we can migrate the docs for this language family from where they currently live in the paketo website repo into a Hugo module that sits inside this repository.

For an example of this, see the Hugo module that sits inside the Paketo Dotnet Core language family repo.

To do this successfully, we need

  • A workflow that automatically tags a release of the docs module when a release is cut on this language family repo. This has been handled in a PR to the centralized Paketo github-config repository
  • A Hugo module inside this language family repo (This module needs to have the name github.com/paketo-buildpacks/<name of this repo>/docs in order for the existing automation to work properly.) It should have the same structure as the Hugo module inside the dotnet-core repo.
  • An additional entry in the go.mod of the paketo-website repo for this repo's docs module
  • An additional [[module.imports.mounts]]in the paketo-website repo's hugo config.toml that mounts the content in this repo's docs module into the proper path in the site's directory structure. That path should match the path to the existing docs file in that repo (Hint: The docs file is probably in here).

Auto generated config fails

If you try to auto generate the config it does not create valid config.

mkdir foo
cd foo
touch index.html
pack build httpd --builder paketobuildpacks/builder:full --env BP_WEB_SERVER=httpd

Expected Behavior

The container should create a default config that works.

Current Behavior

The container fails to run

docker run -e PORT=8080 httpd
AH00526: Syntax error on line 20 of /workspace/httpd.conf:
DocumentRoot '/workspace/public' is not a directory, or is not readable

Possible Solution

Maybe update the documentation to say your HTML files need to be in ./public

It'd also be handy to point out that you need to specify the port when running the container.

Steps to Reproduce

See above

Motivations

I was trying to get started with a very basic container.

Allow basic auth to be configurable via service binding

Summary

Implement the Basic Authentication configuration settings for Web Servers RFC0004.

Proposal

When a htpasswd type service binding is present, the buildpack should use this binding to configure basic authentication. Check out https://cwiki.apache.org/confluence/display/httpd/PasswordBasicAuth for details on how to configure this in httpd.conf.

Outcome

Given an application with no httpd.conf file and a htpasswd service binding, when we run pack build myapp --buildpack paketo-buildpacks/httpd --env BP_WEB_SERVER=httpd --env SERVICE_BINDING_ROOT=/bindings --volume ./my-binding:/bindings/my-binding, then we should see the application can be built and that the static files are served by HTTPD behind basic authentication.

Please configure GITBOT

Pivotal provides the Gitbot service to synchronize issues and pull requests made against public GitHub repos with Pivotal Tracker projects.

If you do not want to use Pivotal Tracker to manage this GitHub repo, you do not need to take any action.

If you are a Pivotal employee, you can configure Gitbot to sync your GitHub repo to your Pivotal Tracker project with a pull request.

Steps:

  • Add the Toolsmiths-Bots team to have admin access to your repo
  • Add the cf-gitbot ([email protected]) user to have owner access to your Pivotal Tracker project
  • Create new branch in this repo: cfgitbot-config (an ask+cf@ ticket is the fastest way to get write access if you get a 404)
  • Add your new repo and or project to config-production.yml file
  • Submit a PR, which will get auto-merged if you've done it right. Detailed steps here

If you are not a pivotal employee, you can request that [email protected] set up the integration for you.

You might also be interested in configuring GitHub's Service Hook for Tracker on your repo so you can link your commits to Tracker stories. You can do this yourself by following the directions at:

https://www.pivotaltracker.com/help/articles/github_integration/

If there are any questions, please reach out to [email protected].

Allow appending headers

Hello, would it be possible to add a configuration option that would append headers to all responses? In my case, I would like to add Cache-Control: no-cache to all responses.

Describe the Enhancement

Currently there is no way (as far as I know) to append headers without an additional proxy in place. With the enhancement we would be able to set an option called e.g. BP_WEB_SERVER_APPEND_HEADERS.

Possible Solution

Adding a new configuration option such as BP_WEB_SERVER_APPEND_HEADERS.

Motivation

In my case, I want to block browsers caching pages. While this is maybe not a very common need, I am guessing it is not rare that people need to add various headers to their responses.

Dependabot can't parse your go.mod

Dependabot couldn't parse the go.mod found at /go.mod.

The error Dependabot encountered was:

go: github.com/onsi/[email protected] requires
	golang.org/x/[email protected]: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /opt/go/gopath/pkg/mod/cache/vcs/ed42bd05533fd84ae290a5d33ebd3695a0a2b06131beebd5450825bee8603aca: exit status 128:
	fatal: The remote end hung up unexpectedly
	fatal: early EOF
	fatal: index-pack failed

View the update logs.

Allow Push State to be enabled via environment variable

Summary

Implement the Push State configuration settings for Web Servers RFC0004.

By the default, when the BP_WEB_SERVER environment variable is set to httpd, the buildpack will generate an httpd.conf file that does not enable push state functionality. We should allow users to change this default value by setting the BP_WEB_SERVER_ENABLE_PUSH_STATE environment variable.

Proposal

When the user sets BP_WEB_SERVER_ENABLE_PUSH_STATE to true, the buildpack will generate an httpd.conf file that has enabled push state. For more details on this, check out https://krasimirtsonev.com/blog/article/apache-htaccess-for-html5-push-state-manipulations.

Outcome

Given an application with no httpd.conf file and static files in the /public directory, when we run pack build myapp --buildpack paketo-buildpacks/httpd --env BP_WEB_SERVER=httpd --env BP_WEB_SERVER_ENABLE_PUSH_STATE=true, then we should see the application can be built and that the static files are served by HTTPD with push state features enabled.

Allow location of httpd.conf to be configurable by environment variable

Describe the Enhancement

Just like with nginx, there is a need to be able to specify httpd configuration location. Additionally, this solution should be added to the documentation.

Possible Solution

I propose the same configuration as with nginx:

  • This buildpack optionally looks for the environment variable called BP_HTTPD_CONF_LOCATION
  • If the environment variable is unset, fall back to the default location of /workspace/httpd.conf
  • If the environment variable is set to a relative filepath, assume that it is relative to /workspace/
  • If the environment variable is set to an absolute filepath, use it as-is (i.e. relative to /

Motivation

Application developers can instruct this buildpack as to where their httpd configuration file is, if it is not in the root of their application directory.

Consume HTTPD dependency from the dep-server

Per paketo-buildpacks/dep-server#45, we should start consuming the HTTPD dependency from the dep-server (https://api.deps.paketo.io/v1/dependency?name=<dependency>) instead of the https://buildpacks.cloudfoundry.org/dependencies/<dependency>/... location we currently get the dependencies from.

This will make the dependency publishing/consumption process more transparent than the process we use for the dependencies available via the dependency-builds pipeline.

We have already done this switch-over in the Node Engine and Yarn Buildpacks. The outline of what this work will entail can be found in the dep-server issue linked at the top.

Implement RFC0038: SBOM

To implement Paketo RFC0038, this buildpack will need to move from storing SBOM information in layer metadata to storing it in files that the CNB lifecycle can manipulate during the build. The RFC outlines what these files are and what they should contain.

Can we use httpd on the base stack?

Summary

The HTTPD dependency that this buildpack installs appears to be unable to run on the base stack. Can we complete an exploration to determine why we cannot run this on base and if it might be reasonable for us to get this to run on base?

httpd buildpack 0.1.0 is not detected

What happened?

Buildpack is not detected

  • What were you attempting to do?

Compile image inside tekton task

  • What did you expect to happen?

httpd buildpack to be used

  • What was the actual behavior? Please provide log output, if possible.

node buildpack was used

/cnb/lifecycle/detector -app=/workspace/app/dist/web/
3 of 6 buildpacks participating
paketo-buildpacks/ca-certificates 2.2.0
paketo-buildpacks/node-engine     0.4.0
paketo-buildpacks/node-start      0.2.0

/workspace/app/dist/web$ ls -la
total 10112
drwxr-xr-x  3 cnb  cnb     4096 Jul 24 05:05 .
drwxr-xr-x  3 root root      17 Jul 24 05:03 ..
drwxr-xr-x 10 cnb  cnb      160 Jul 24 05:03 assets
-rw-r--r--  1 cnb  cnb       27 Jul 24 05:03 buildpack.yml
-rw-r--r--  1 cnb  cnb      948 Jul 24 05:03 favicon.ico
-rw-r--r--  1 cnb  cnb      449 Jul 24 05:05 group.toml
-rw-r--r--  1 cnb  cnb     6293 Jul 24 05:03 httpd.conf
-rw-r--r--  1 cnb  cnb      833 Jul 24 05:03 index.html
-rw-r--r--  1 cnb  cnb   221970 Jul 24 05:03 main.js
-rw-r--r--  1 cnb  cnb   114663 Jul 24 05:03 main.js.map
-rw-r--r--  1 cnb  cnb      359 Jul 24 05:05 plan.toml
-rw-r--r--  1 cnb  cnb   131690 Jul 24 05:03 polyfills.js
-rw-r--r--  1 cnb  cnb   149796 Jul 24 05:03 polyfills.js.map
-rw-r--r--  1 cnb  cnb      552 Jul 24 05:03 project.toml
-rw-r--r--  1 cnb  cnb    45742 Jul 24 05:03 projects_web_src_app_modules_dwelling-fire_dwelling-fire_module_ts.js
-rw-r--r--  1 cnb  cnb    32446 Jul 24 05:03 projects_web_src_app_modules_dwelling-fire_dwelling-fire_module_ts.js.map
-rw-r--r--  1 cnb  cnb    71525 Jul 24 05:03 projects_web_src_app_modules_general-information_general-information_module_ts.js
-rw-r--r--  1 cnb  cnb    30990 Jul 24 05:03 projects_web_src_app_modules_general-information_general-information_module_ts.js.map
-rw-r--r--  1 cnb  cnb    34638 Jul 24 05:03 projects_web_src_app_modules_home_home_module_ts.js
-rw-r--r--  1 cnb  cnb    11629 Jul 24 05:03 projects_web_src_app_modules_home_home_module_ts.js.map
-rw-r--r--  1 cnb  cnb     2825 Jul 24 05:03 projects_web_src_app_modules_insurance_insurance_module_ts.js
-rw-r--r--  1 cnb  cnb     1323 Jul 24 05:03 projects_web_src_app_modules_insurance_insurance_module_ts.js.map
-rw-r--r--  1 cnb  cnb    19074 Jul 24 05:03 projects_web_src_app_modules_policy-management_grant-program_grant-program_module_ts.js
-rw-r--r--  1 cnb  cnb     8316 Jul 24 05:03 projects_web_src_app_modules_policy-management_grant-program_grant-program_module_ts.js.map
-rw-r--r--  1 cnb  cnb    74564 Jul 24 05:03 projects_web_src_app_modules_policy-management_make-payment_make-payment_module_ts.js
-rw-r--r--  1 cnb  cnb    40345 Jul 24 05:03 projects_web_src_app_modules_policy-management_make-payment_make-payment_module_ts.js.map
-rw-r--r--  1 cnb  cnb     5661 Jul 24 05:03 projects_web_src_app_modules_policy-management_my-policy_my-policy_module_ts.js
-rw-r--r--  1 cnb  cnb     2526 Jul 24 05:03 projects_web_src_app_modules_policy-management_my-policy_my-policy_module_ts.js.map
-rw-r--r--  1 cnb  cnb     6222 Jul 24 05:03 projects_web_src_app_modules_policy-management_overview_overview-policy_module_ts.js
-rw-r--r--  1 cnb  cnb     2703 Jul 24 05:03 projects_web_src_app_modules_policy-management_overview_overview-policy_module_ts.js.map
-rw-r--r--  1 cnb  cnb     4451 Jul 24 05:03 projects_web_src_app_modules_policy-management_policy-management_module_ts.js
-rw-r--r--  1 cnb  cnb     2320 Jul 24 05:03 projects_web_src_app_modules_policy-management_policy-management_module_ts.js.map
-rw-r--r--  1 cnb  cnb    11774 Jul 24 05:03 runtime.js
-rw-r--r--  1 cnb  cnb    10398 Jul 24 05:03 runtime.js.map
-rw-r--r--  1 cnb  cnb    95693 Jul 24 05:03 styles.css
-rw-r--r--  1 cnb  cnb   223060 Jul 24 05:03 styles.css.map
-rw-r--r--  1 cnb  cnb  4293292 Jul 24 05:03 vendor.js
-rw-r--r--  1 cnb  cnb  4610662 Jul 24 05:03 vendor.js.map


Build Configuration

  • What platform (pack, kpack, tekton buildpacks plugin, etc.) are you
    using? Please include a version.

tekton:

➜ tkn version                                                          
Client version: 0.18.0
Pipeline version: v0.20.1
Triggers version: v0.11.2
Dashboard version: v0.14.0
  • What buildpacks are you using? Please include versions.

paketo-buildpacks/[email protected]

  • What builder are you using? If custom, can you provide the output from pack inspect-builder <builder>?
pack inspect-builder public.ecr.aws/reponame/buildpacks/paketo/builder:full

Inspecting builder: 'public.ecr.aws/reponame/buildpacks/paketo/builder:full'

REMOTE:

Description: Ubuntu bionic base image with buildpacks for Java, .NET Core, NodeJS, Go, PHP, Ruby, Apache HTTPD, NGINX and Procfile

Created By:
  Name: Pack CLI
  Version: 0.19.0+git-360dbae.build-2550

Trusted: No

Stack:
  ID: io.buildpacks.stacks.bionic

Lifecycle:
  Version: 0.11.3
  Buildpack APIs:
    Deprecated: (none)
    Supported: 0.2, 0.3, 0.4, 0.5, 0.6
  Platform APIs:
    Deprecated: (none)
    Supported: 0.3, 0.4, 0.5, 0.6

Run Images:
  index.docker.io/paketobuildpacks/run:full-cnb
  gcr.io/paketo-buildpacks/run:full-cnb

Buildpacks:
  ID                                                  NAME        VERSION        HOMEPAGE
  paketo-buildpacks/apache-tomcat                     -           5.5.2          https://github.com/paketo-buildpacks/apache-tomcat
  paketo-buildpacks/azure-application-insights        -           4.4.2          https://github.com/paketo-buildpacks/azure-application-insights
  paketo-buildpacks/bellsoft-liberica                 -           8.1.2          https://github.com/paketo-buildpacks/bellsoft-liberica
  paketo-buildpacks/bundle-install                    -           0.2.0          https://github.com/paketo-buildpacks/bundle-install
  paketo-buildpacks/bundler                           -           0.1.6          https://github.com/paketo-buildpacks/bundler
  paketo-buildpacks/ca-certificates                   -           2.1.0          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/ca-certificates                   -           2.2.0          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/ca-certificates                   -           2.3.2          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/debug                             -           3.1.2          https://github.com/paketo-buildpacks/debug
  paketo-buildpacks/dep                               -           0.0.179        https://github.com/paketo-buildpacks/dep
  paketo-buildpacks/dep-ensure                        -           0.0.39         https://github.com/paketo-buildpacks/dep-ensure
  paketo-buildpacks/dist-zip                          -           4.1.2          https://github.com/paketo-buildpacks/dist-zip
  paketo-buildpacks/dotnet-core                       -           0.4.0          https://github.com/paketo-buildpacks/dotnet-core
  paketo-buildpacks/dotnet-core-aspnet                -           0.1.12         https://github.com/paketo-buildpacks/dotnet-core-aspnet
  paketo-buildpacks/dotnet-core-runtime               -           0.1.12         https://github.com/paketo-buildpacks/dotnet-core-runtime
  paketo-buildpacks/dotnet-core-sdk                   -           0.1.10         https://github.com/paketo-buildpacks/dotnet-core-sdk
  paketo-buildpacks/dotnet-execute                    -           0.4.0          https://github.com/paketo-buildpacks/dotnet-execute
  paketo-buildpacks/dotnet-publish                    -           0.3.0          https://github.com/paketo-buildpacks/dotnet-publish
  paketo-buildpacks/encrypt-at-rest                   -           3.1.2          https://github.com/paketo-buildpacks/encrypt-at-rest
  paketo-buildpacks/environment-variables             -           3.0.0          https://github.com/paketo-buildpacks/environment-variables
  paketo-buildpacks/environment-variables             -           3.1.1          https://github.com/paketo-buildpacks/environment-variables
  paketo-buildpacks/executable-jar                    -           5.1.2          https://github.com/paketo-buildpacks/executable-jar
  paketo-buildpacks/go                                -           0.8.0          https://github.com/paketo-buildpacks/go
  paketo-buildpacks/go-build                          -           0.3.4          https://github.com/paketo-buildpacks/go-build
  paketo-buildpacks/go-dist                           -           0.5.1          https://github.com/paketo-buildpacks/go-dist
  paketo-buildpacks/go-mod-vendor                     -           0.2.2          https://github.com/paketo-buildpacks/go-mod-vendor
  paketo-buildpacks/google-stackdriver                -           3.11.2         https://github.com/paketo-buildpacks/google-stackdriver
  paketo-buildpacks/graalvm                           -           6.2.2          https://github.com/paketo-buildpacks/graalvm
  paketo-buildpacks/gradle                            -           5.3.2          https://github.com/paketo-buildpacks/gradle
  paketo-buildpacks/httpd                             -           0.1.0          https://github.com/paketo-buildpacks/httpd
  paketo-buildpacks/icu                               -           0.0.102        https://github.com/paketo-buildpacks/icu
  paketo-buildpacks/image-labels                      -           3.0.0          https://github.com/paketo-buildpacks/image-labels
  paketo-buildpacks/image-labels                      -           3.1.2          https://github.com/paketo-buildpacks/image-labels
  paketo-buildpacks/java                              -           5.9.1          https://github.com/paketo-buildpacks/java
  paketo-buildpacks/java-native-image                 -           5.4.0          https://github.com/paketo-buildpacks/java-native-image
  paketo-buildpacks/jmx                               -           3.1.2          https://github.com/paketo-buildpacks/jmx
  paketo-buildpacks/leiningen                         -           3.2.2          https://github.com/paketo-buildpacks/leiningen
  paketo-buildpacks/maven                             -           5.3.2          https://github.com/paketo-buildpacks/maven
  paketo-buildpacks/mri                               -           0.1.6          https://github.com/paketo-buildpacks/mri
  paketo-buildpacks/native-image                      -           4.1.2          https://github.com/paketo-buildpacks/native-image
  paketo-buildpacks/nginx                             -           0.2.0          https://github.com/paketo-buildpacks/nginx
  paketo-buildpacks/node-engine                       -           0.3.1          https://github.com/paketo-buildpacks/node-engine
  paketo-buildpacks/node-engine                       -           0.4.0          https://github.com/paketo-buildpacks/node-engine
  paketo-buildpacks/node-start                        -           0.2.0          https://github.com/paketo-buildpacks/node-start
  paketo-buildpacks/nodejs                            -           0.4.0          https://github.com/paketo-buildpacks/nodejs
  paketo-buildpacks/npm-install                       -           0.3.0          https://github.com/paketo-buildpacks/npm-install
  paketo-buildpacks/npm-start                         -           0.2.0          https://github.com/paketo-buildpacks/npm-start
  paketo-buildpacks/passenger                         -           0.0.17         https://github.com/paketo-buildpacks/passenger
  paketo-buildpacks/php                               -           0.4.0          https://github.com/paketo-buildpacks/php
  paketo-buildpacks/php-composer                      -           0.2.1          https://github.com/paketo-buildpacks/php-composer
  paketo-buildpacks/php-dist                          -           0.3.1          https://github.com/paketo-buildpacks/php-dist
  paketo-buildpacks/php-web                           -           0.1.1          https://github.com/paketo-buildpacks/php-web
  paketo-buildpacks/procfile                          -           4.1.0          https://github.com/paketo-buildpacks/procfile
  paketo-buildpacks/procfile                          -           4.2.2          https://github.com/paketo-buildpacks/procfile
  paketo-buildpacks/puma                              -           0.0.58         https://github.com/paketo-buildpacks/puma
  paketo-buildpacks/rackup                            -           0.0.56         https://github.com/paketo-buildpacks/rackup
  paketo-buildpacks/rails-assets                      -           0.2.1          https://github.com/paketo-buildpacks/rails-assets
  paketo-buildpacks/rake                              -           0.0.11         https://github.com/paketo-buildpacks/rake
  paketo-buildpacks/ruby                              -           0.6.0          https://github.com/paketo-buildpacks/ruby
  paketo-buildpacks/sbt                               -           5.3.2          https://github.com/paketo-buildpacks/sbt
  paketo-buildpacks/sbt                               -           5.4.0          https://github.com/paketo-buildpacks/sbt
  paketo-buildpacks/spring-boot                       -           4.4.2          https://github.com/paketo-buildpacks/spring-boot
  paketo-buildpacks/thin                              -           0.0.51         https://github.com/paketo-buildpacks/thin
  paketo-buildpacks/unicorn                           -           0.0.49         https://github.com/paketo-buildpacks/unicorn
  paketo-buildpacks/yarn                              -           0.2.0          https://github.com/paketo-buildpacks/yarn
  paketo-buildpacks/yarn-install                      -           0.3.0          https://github.com/paketo-buildpacks/yarn-install
  paketo-buildpacks/yarn-start                        -           0.1.0          https://github.com/paketo-buildpacks/yarn-start

Detection Order:
 ├ Group #1:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #3:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #4:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #5:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #6:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                  (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #2:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]      (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                    (optional)
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]      (optional)
 │  │     ├ paketo-buildpacks/[email protected]         (optional)
 │  │     ├ paketo-buildpacks/[email protected]                    (optional)
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]              (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #3:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #4:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #5:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]             (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #6:
 │  └ paketo-buildpacks/[email protected]
 ├ Group #7:
 │  └ paketo-buildpacks/[email protected]
 ├ Group #8:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                (optional)
 │        ├ paketo-buildpacks/[email protected]                   (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]              (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #9:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]               (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                     (optional)
 │        ├ paketo-buildpacks/[email protected]                        (optional)
 │        ├ paketo-buildpacks/[email protected]                         (optional)
 │        ├ paketo-buildpacks/[email protected]                           (optional)
 │        ├ paketo-buildpacks/[email protected]                (optional)
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]                   (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        ├ paketo-buildpacks/[email protected]                         (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]                           (optional)
 │        ├ paketo-buildpacks/[email protected]               (optional)
 │        ├ paketo-buildpacks/[email protected]         (optional)
 │        └ paketo-buildpacks/[email protected]                  (optional)
 └ Group #10:
    └ paketo-buildpacks/[email protected]

LOCAL:

Description: Ubuntu bionic base image with buildpacks for Java, .NET Core, NodeJS, Go, PHP, Ruby, Apache HTTPD, NGINX and Procfile

Created By:
  Name: Pack CLI
  Version: 0.19.0+git-360dbae.build-2550

Trusted: No

Stack:
  ID: io.buildpacks.stacks.bionic

Lifecycle:
  Version: 0.11.3
  Buildpack APIs:
    Deprecated: (none)
    Supported: 0.2, 0.3, 0.4, 0.5, 0.6
  Platform APIs:
    Deprecated: (none)
    Supported: 0.3, 0.4, 0.5, 0.6

Run Images:
  index.docker.io/paketobuildpacks/run:full-cnb
  gcr.io/paketo-buildpacks/run:full-cnb

Buildpacks:
  ID                                                  NAME        VERSION        HOMEPAGE
  paketo-buildpacks/apache-tomcat                     -           5.5.2          https://github.com/paketo-buildpacks/apache-tomcat
  paketo-buildpacks/azure-application-insights        -           4.4.2          https://github.com/paketo-buildpacks/azure-application-insights
  paketo-buildpacks/bellsoft-liberica                 -           8.1.2          https://github.com/paketo-buildpacks/bellsoft-liberica
  paketo-buildpacks/bundle-install                    -           0.2.0          https://github.com/paketo-buildpacks/bundle-install
  paketo-buildpacks/bundler                           -           0.1.6          https://github.com/paketo-buildpacks/bundler
  paketo-buildpacks/ca-certificates                   -           2.1.0          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/ca-certificates                   -           2.2.0          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/ca-certificates                   -           2.3.2          https://github.com/paketo-buildpacks/ca-certificates
  paketo-buildpacks/debug                             -           3.1.2          https://github.com/paketo-buildpacks/debug
  paketo-buildpacks/dep                               -           0.0.179        https://github.com/paketo-buildpacks/dep
  paketo-buildpacks/dep-ensure                        -           0.0.39         https://github.com/paketo-buildpacks/dep-ensure
  paketo-buildpacks/dist-zip                          -           4.1.2          https://github.com/paketo-buildpacks/dist-zip
  paketo-buildpacks/dotnet-core                       -           0.4.0          https://github.com/paketo-buildpacks/dotnet-core
  paketo-buildpacks/dotnet-core-aspnet                -           0.1.12         https://github.com/paketo-buildpacks/dotnet-core-aspnet
  paketo-buildpacks/dotnet-core-runtime               -           0.1.12         https://github.com/paketo-buildpacks/dotnet-core-runtime
  paketo-buildpacks/dotnet-core-sdk                   -           0.1.10         https://github.com/paketo-buildpacks/dotnet-core-sdk
  paketo-buildpacks/dotnet-execute                    -           0.4.0          https://github.com/paketo-buildpacks/dotnet-execute
  paketo-buildpacks/dotnet-publish                    -           0.3.0          https://github.com/paketo-buildpacks/dotnet-publish
  paketo-buildpacks/encrypt-at-rest                   -           3.1.2          https://github.com/paketo-buildpacks/encrypt-at-rest
  paketo-buildpacks/environment-variables             -           3.0.0          https://github.com/paketo-buildpacks/environment-variables
  paketo-buildpacks/environment-variables             -           3.1.1          https://github.com/paketo-buildpacks/environment-variables
  paketo-buildpacks/executable-jar                    -           5.1.2          https://github.com/paketo-buildpacks/executable-jar
  paketo-buildpacks/go                                -           0.8.0          https://github.com/paketo-buildpacks/go
  paketo-buildpacks/go-build                          -           0.3.4          https://github.com/paketo-buildpacks/go-build
  paketo-buildpacks/go-dist                           -           0.5.1          https://github.com/paketo-buildpacks/go-dist
  paketo-buildpacks/go-mod-vendor                     -           0.2.2          https://github.com/paketo-buildpacks/go-mod-vendor
  paketo-buildpacks/google-stackdriver                -           3.11.2         https://github.com/paketo-buildpacks/google-stackdriver
  paketo-buildpacks/graalvm                           -           6.2.2          https://github.com/paketo-buildpacks/graalvm
  paketo-buildpacks/gradle                            -           5.3.2          https://github.com/paketo-buildpacks/gradle
  paketo-buildpacks/httpd                             -           0.1.0          https://github.com/paketo-buildpacks/httpd
  paketo-buildpacks/icu                               -           0.0.102        https://github.com/paketo-buildpacks/icu
  paketo-buildpacks/image-labels                      -           3.0.0          https://github.com/paketo-buildpacks/image-labels
  paketo-buildpacks/image-labels                      -           3.1.2          https://github.com/paketo-buildpacks/image-labels
  paketo-buildpacks/java                              -           5.9.1          https://github.com/paketo-buildpacks/java
  paketo-buildpacks/java-native-image                 -           5.4.0          https://github.com/paketo-buildpacks/java-native-image
  paketo-buildpacks/jmx                               -           3.1.2          https://github.com/paketo-buildpacks/jmx
  paketo-buildpacks/leiningen                         -           3.2.2          https://github.com/paketo-buildpacks/leiningen
  paketo-buildpacks/maven                             -           5.3.2          https://github.com/paketo-buildpacks/maven
  paketo-buildpacks/mri                               -           0.1.6          https://github.com/paketo-buildpacks/mri
  paketo-buildpacks/native-image                      -           4.1.2          https://github.com/paketo-buildpacks/native-image
  paketo-buildpacks/nginx                             -           0.2.0          https://github.com/paketo-buildpacks/nginx
  paketo-buildpacks/node-engine                       -           0.3.1          https://github.com/paketo-buildpacks/node-engine
  paketo-buildpacks/node-engine                       -           0.4.0          https://github.com/paketo-buildpacks/node-engine
  paketo-buildpacks/node-start                        -           0.2.0          https://github.com/paketo-buildpacks/node-start
  paketo-buildpacks/nodejs                            -           0.4.0          https://github.com/paketo-buildpacks/nodejs
  paketo-buildpacks/npm-install                       -           0.3.0          https://github.com/paketo-buildpacks/npm-install
  paketo-buildpacks/npm-start                         -           0.2.0          https://github.com/paketo-buildpacks/npm-start
  paketo-buildpacks/passenger                         -           0.0.17         https://github.com/paketo-buildpacks/passenger
  paketo-buildpacks/php                               -           0.4.0          https://github.com/paketo-buildpacks/php
  paketo-buildpacks/php-composer                      -           0.2.1          https://github.com/paketo-buildpacks/php-composer
  paketo-buildpacks/php-dist                          -           0.3.1          https://github.com/paketo-buildpacks/php-dist
  paketo-buildpacks/php-web                           -           0.1.1          https://github.com/paketo-buildpacks/php-web
  paketo-buildpacks/procfile                          -           4.1.0          https://github.com/paketo-buildpacks/procfile
  paketo-buildpacks/procfile                          -           4.2.2          https://github.com/paketo-buildpacks/procfile
  paketo-buildpacks/puma                              -           0.0.58         https://github.com/paketo-buildpacks/puma
  paketo-buildpacks/rackup                            -           0.0.56         https://github.com/paketo-buildpacks/rackup
  paketo-buildpacks/rails-assets                      -           0.2.1          https://github.com/paketo-buildpacks/rails-assets
  paketo-buildpacks/rake                              -           0.0.11         https://github.com/paketo-buildpacks/rake
  paketo-buildpacks/ruby                              -           0.6.0          https://github.com/paketo-buildpacks/ruby
  paketo-buildpacks/sbt                               -           5.3.2          https://github.com/paketo-buildpacks/sbt
  paketo-buildpacks/sbt                               -           5.4.0          https://github.com/paketo-buildpacks/sbt
  paketo-buildpacks/spring-boot                       -           4.4.2          https://github.com/paketo-buildpacks/spring-boot
  paketo-buildpacks/thin                              -           0.0.51         https://github.com/paketo-buildpacks/thin
  paketo-buildpacks/unicorn                           -           0.0.49         https://github.com/paketo-buildpacks/unicorn
  paketo-buildpacks/yarn                              -           0.2.0          https://github.com/paketo-buildpacks/yarn
  paketo-buildpacks/yarn-install                      -           0.3.0          https://github.com/paketo-buildpacks/yarn-install
  paketo-buildpacks/yarn-start                        -           0.1.0          https://github.com/paketo-buildpacks/yarn-start

Detection Order:
 ├ Group #1:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #3:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #4:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #5:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]                     (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]             (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #6:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                  (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #2:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]      (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                    (optional)
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]      (optional)
 │  │     ├ paketo-buildpacks/[email protected]         (optional)
 │  │     ├ paketo-buildpacks/[email protected]                    (optional)
 │  │     ├ paketo-buildpacks/[email protected]              (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]              (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #3:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #4:
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #1:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  ├ paketo-buildpacks/[email protected]
 │  │  └ Group #2:
 │  │     ├ paketo-buildpacks/[email protected]          (optional)
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]
 │  │     ├ paketo-buildpacks/[email protected]                 (optional)
 │  │     ├ paketo-buildpacks/[email protected]    (optional)
 │  │     └ paketo-buildpacks/[email protected]             (optional)
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #3:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #5:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]             (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #6:
 │  └ paketo-buildpacks/[email protected]
 ├ Group #7:
 │  └ paketo-buildpacks/[email protected]
 ├ Group #8:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]          (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                (optional)
 │        ├ paketo-buildpacks/[email protected]                   (optional)
 │        ├ paketo-buildpacks/[email protected]                    (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]              (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        └ paketo-buildpacks/[email protected]             (optional)
 ├ Group #9:
 │  └ paketo-buildpacks/[email protected]
 │     └ Group #1:
 │        ├ paketo-buildpacks/[email protected]               (optional)
 │        ├ paketo-buildpacks/[email protected]
 │        ├ paketo-buildpacks/[email protected]                     (optional)
 │        ├ paketo-buildpacks/[email protected]                        (optional)
 │        ├ paketo-buildpacks/[email protected]                         (optional)
 │        ├ paketo-buildpacks/[email protected]                           (optional)
 │        ├ paketo-buildpacks/[email protected]                (optional)
 │        ├ paketo-buildpacks/[email protected]                 (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]                   (optional)
 │        ├ paketo-buildpacks/[email protected]                      (optional)
 │        ├ paketo-buildpacks/[email protected]    (optional)
 │        ├ paketo-buildpacks/[email protected]                         (optional)
 │        ├ paketo-buildpacks/[email protected]           (optional)
 │        ├ paketo-buildpacks/[email protected]                           (optional)
 │        ├ paketo-buildpacks/[email protected]               (optional)
 │        ├ paketo-buildpacks/[email protected]         (optional)
 │        └ paketo-buildpacks/[email protected]                  (optional)
 └ Group #10:
    └ paketo-buildpacks/[email protected]
  • Can you provide a sample app or relevant configuration
cnb@nypiua-frontend-dev-build-pipeline-run-bkbrt-buildpack-fr-dmkmt:/workspace/app$ cat buildpack.yml 
httpd:
  version: "2.4.46"
cnb@nypiua-frontend-dev-build-pipeline-run-bkbrt-buildpack-fr-dmkmt:/workspace/app$ cat project.toml 
# spec
# https://github.com/buildpacks/spec/blob/main/extensions/project-descriptor.md#buildenv

[project]
id = "io.buildpacks.project-frontend"
name = "Angular Frontend"
version = "1.0.0"

[build]
include = [
    "nginx.conf",
    "httpd.conf",
    "dist/",
    "Procfile",
    "buildpack.yml",
]

exclude = [
    "node_modules/",
    "package.json",
    ".kubernetes"
]

# You can set nginx version by this command
[[build.env]]
name = "BP_HTTPD_VERSION"
value = "2.4.46"

[[build.buildpacks]]
id = "paketo-buildpacks/httpd"
version = "0.1.0"
cnb@nypiua-frontend-dev-build-pipeline-run-bkbrt-buildpack-fr-dmkmt:/workspace/app$ cat httpd.conf 
ServerRoot "${SERVER_ROOT}"
Listen "${PORT}"
ServerAdmin "[email protected]"
ServerName "0.0.0.0"
DocumentRoot "${APP_ROOT}/dist/web"

LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule remoteip_module modules/mod_remoteip.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so

SSLProxyEngine on

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory "${APP_ROOT}/dist/web">
    Options SymLinksIfOwnerMatch
    AllowOverride All
    Require all granted
</Directory>

<Files ".ht*">
    Require all denied
</Files>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

<IfModule filter_module>
  <IfModule deflate_module>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
  </IfModule>
</IfModule>

ErrorLog "/proc/self/fd/2"
LogLevel info
<IfModule log_config_module>
    LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%a %l %u %t \"%r\" %>s %b" common
    LogFormat "%a %l %u %t \"%r\" %>s %b vcap_request_id=%{X-Vcap-Request-Id}i peer_addr=%{c}a" extended
    <IfModule logio_module>
      LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "/proc/self/fd/1" extended
</IfModule>

<IfModule !mpm_netware_module>
    PidFile "logs/httpd.pid"
</IfModule>
<IfModule mpm_worker_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
<IfModule !mpm_netware_module>
    MaxMemFree            2048
</IfModule>
 
ProxyPass "/api/manageInspectionUpdates/"      "${PROXY_API}/manageInspectionUpdates/"
ProxyPass "/api/nypSupplierServices/"          "${PROXY_API}/nypSupplierServices/"
ProxyPass "/api/generateBlankTemplate/"        "${PROXY_API}/generateBlankTemplate/"
ProxyPass "/api/generateAdditionalDocuments/"  "${PROXY_API}/generateAdditionalDocuments/"
ProxyPass "/api/generateClaimsCorrespondence/" "${PROXY_API}/generateClaimsCorrespondence/"
ProxyPass "/api/obtainDwellingFireQQ/"         "${PROXY_API}/obtainDwellingFireQQ/"
ProxyPass "/api/getLC360Token/"                "${PROXY_API}/getLC360Token/"
ProxyPass "/api/taskManagement/"               "${PROXY_API}/taskManagement/"
ProxyPass "/api/updateDocumentStatus/"         "${PROXY_API}/updateDocumentStatus/"
ProxyPass "/api/manageInsuredFolder/"          "${PROXY_API}/manageInsuredFolder/"
ProxyPass "/api/generatePolicyDocuments/"      "${PROXY_API}/generatePolicyDocuments/"
ProxyPass "/api/manageClaimsFolder/"           "${PROXY_API}/manageClaimsFolder/"
ProxyPass "/api/purgeDocumentDraft/"           "${PROXY_API}/purgeDocumentDraft/"
ProxyPass "/api/postPaymentConfirmation/"      "${PROXY_API}/postPaymentConfirmation/"
ProxyPass "/api/distributeDocuments"           "${PROXY_API}/distributeDocuments/"
ProxyPass "/api/PasswordEncryption/"           "${PROXY_API}/PasswordEncryption/"
ProxyPass "/api/submitAntiArsonResponse/"      "${PROXY_API}/submitAntiArsonResponse/"
ProxyPass "/api/reportFNOL/"                   "${PROXY_API}/reportFNOL/"
ProxyPass "/api/generateDocuments/"            "${PROXY_API}/generateDocuments/"
ProxyPass "/api/startNewMajescoTransaction/"   "${PROXY_API}/startNewMajescoTransaction/"
ProxyPass "/api/viewPolicyTransactions/"       "${PROXY_API}/viewPolicyTransactions/"
ProxyPass "/api/registry/lookup/"              "${PROXY_API}/registry/lookup/"
ProxyPass "/api/launchHPI/"                    "${PROXY_API}/launchHPI/"
ProxyPass "/api/launchHPINotes/"               "${PROXY_API}/launchHPINotes/"
ProxyPass "/api/generateAdHocCorrespondence/"  "${PROXY_API}/generateAdHocCorrespondence/"
ProxyPass "/api/launchHPIAttachments/"         "${PROXY_API}/launchHPIAttachments/"
ProxyPass "/api/launchInspection/"             "${PROXY_API}/launchInspection/"
ProxyPass "/api/manageUWFolder/"               "${PROXY_API}/manageUWFolder/"
ProxyPass "/api/manageBillingAccountFolder/"   "${PROXY_API}/manageBillingAccountFolder/"
ProxyPass "/api/PASworkflow/"                  "${PROXY_API}/PASworkflow/"
ProxyPass "/api/pasEntityInquiry/"             "${PROXY_API}/pasEntityInquiry/"
ProxyPass "/api/registry/admin/"               "${PROXY_API}/registry/admin/"
ProxyPass "/api/initiateInspections/"          "${PROXY_API}/initiateInspections/"
ProxyPass "/api/addECMFolderNotes/"            "${PROXY_API}/addECMFolderNotes/"

Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
UseCanonicalPhysicalPort Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
EnableMMAP Off
EnableSendfile On
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

# Adjust IP Address based on header set by proxy
#
RemoteIpHeader x-forwarded-for

# Set HTTPS environment variable if we came in over secure
#  channel.
SetEnvIf x-forwarded-proto https HTTPS=on

<IfModule !mod_headers.c>
  LoadModule headers_module modules/mod_headers.so
</IfModule>

Checklist

  • I have included log output.
  • The log output includes an error message.
  • I have included steps for reproduction.

Generate a default httpd.conf when one is not included and version is specified

The buildpack allows a user to specify the version of httpd to use via buildpack.yml like this:

httpd:
  version: 2.4.46

Unfortunately, it won't detect and instead errors because I have not included an httpd.conf file in my application source code:

pack build myapp --buildpack gcr.io/paketo-buildpacks/httpd
base: Pulling from paketobuildpacks/builder
Digest: sha256:00a9c25f8f994c1a044fa772f7e9314fe5d90d329b40f51426e1dafadbfa5ac8
Status: Image is up to date for paketobuildpacks/builder:base
base-cnb: Pulling from paketobuildpacks/run
Digest: sha256:21c1fb65033ae5a765a1fb44bfefdea37024ceac86ac6098202b891d27b8671f
Status: Image is up to date for paketobuildpacks/run:base-cnb
latest: Pulling from paketo-buildpacks/httpd
ac58557267b8: Pull complete
Digest: sha256:c69dd9bcc1ea15342456b99a36805dbf0986320306af3e25cac0f45956a491d1
Status: Downloaded newer image for gcr.io/paketo-buildpacks/httpd:latest
0.9.2: Pulling from buildpacksio/lifecycle
Digest: sha256:845a165fa064a589887dd22fa1587ae7daf62c8e6589a04c1689b35d0c7cd572
Status: Image is up to date for buildpacksio/lifecycle:0.9.2
===> DETECTING
[detector] ======== Output: paketo-buildpacks/[email protected] ========
[detector]
[detector] failed to detect: buildpack.yml specifies a version, but httpd.conf is missing
[detector] err:  paketo-buildpacks/[email protected] (1)
[detector] ERROR: No buildpack groups passed detection.
[detector] ERROR: failed to detect: buildpack(s) failed with err
ERROR: failed to build: executing lifecycle. This may be the result of using an untrusted builder: failed with status code: 101

In this case, should the buildpack generate a basic httpd.conf with some defaults?

Compile dependency on actual stack images

The dependency that this buildpack provides is compiled on an image that isn't actually the stack image. This could result in subtle bugs - like features not being enabled or enabled features not being available at run-time - due to differences in configuration and available libraries. We should compile the dependency on the actual stack base image rather than a similar image.

Auto generated config does not work with binding

I created an .htpasswd file and a type file with "htpasswd" in, in a directory above the current (so the directory is not included in the pack build)

And mounted it as a volume to /platform/bindings.

$ ls -1a /secret/htpass
.
..
.htpasswd
type
$ pack build httpd --builder paketobuildpacks/builder:full --env BP_WEB_SERVER=httpd  --volume /secret/htpass:/platform/bindings/secret

......
  Generating httpd.conf
    Adds configuration that configured basic authentication from service binding
......

Expected Behavior

The secret provided should be usable.

Current Behavior

500 error. On inspection the httpd.conf refers to :

  AuthUserFile "/platform/bindings/secret/.htpasswd"

Which was only mounted at build time. Not at runtime. No /platform directory exists at runtime.

Steps to Reproduce

See above.

Motivations

Trying to get started with this buildpack.

Implement Dependency RFC 0004 for httpd

Implement Dependency Management RFC Phase 1 for httpd. Check out the RFC for more details and background.

1. Determine dependency source strategy

Background

When possible, dependencies should be used directly from upstream, rather than undergoing any additional compilation or modifications performed by Paketo-maintained code. For each dependency, the corresponding buildpack maintainer group will decide if the dependency can be used directly from upstream, and must identify the location from which the dependency will be pulled from. Some of the Paketo Java buildpacks perform directory stripping during the buildpack build process itself. This could be a viable alternative to performing directory modifications during the dependency management process for maintainers to consider.

  • Determine whether the dependency can be used directly from its upstream, rather than undergoing additional compilation/modification.
  • If using directly from upstream, note where dependencies will come from
  • If compiled or modified, note the decision for this
  • Document decision in a language-family level RFC. This decision can be combined in the RFC with the decision made for other buildpacks in the language family.

2. Version retrieval and metadata generation code

Please refer to the retrieval RFC section on version retrieval for details around the API and background.

  • Create retrieval code for the dependency
  • Will live in the buildpack under: dependency/retrieval/
  • Per the RFC, this will be a combination of (1) discovering new dependency versions based on the buildpack.toml, and (2) generating metadata for each new version.
  • Note : Per the RFC caveat - if the dependency is to be compiled, the SHA256 and URI field from the metadata should be omitted in this step.

3. Compilation code (if needed)

If the dependency will be compiled/modified, then refer to the compilation RFC section for API details and background.

  • Create compilation action
  • Will live in the buildpack under: dependency/actions/compile/

4. Dependency testing (optional)

It's up to maintainer discretion if the dependency will be tested. It's recommended to test the dependency if it's been compiled. Check out the testing RFC section for details.

  • Add tests for dependency
  • Will live in the buildpack under: dependency/test.

5. Makefile Setup

When using the generalized workflows for dependency management down the line, version retrieval and dependency testing will be executed via a Makefile in order to provide the workflow a standardized way to run the code, regardless of what language it was written in. Check out the RFC section for what this should look like.

  • Add Makefile
  • Will live in the buildpack at: dependency/Makefile

6. Leveraging the new code

This issue serves to set up all the main logic for the dependency management. The work to actually leverage this code and migrate off of the dep-server will be completed in a separate issue once workflows and infrastructure is set up.

if used with php, why not set launch=true?

ANSWER: I needed php-cnb, httpd-cnb, AND php-web-cnb to run a PHP app.

I apologise if this is a silly question - I'm desperately trying to figure out how to combine php/httpd buildpacks to run a php app.

https://github.com/cloudfoundry/httpd-cnb/blob/master/cmd/detect/main.go#L53-L56 says that if php-cnb is also in th plan then "yay, let's use php" - but then it returns buildplan.BuildPlan{} and not the later buildplan:

buildplan.BuildPlan{
		httpd.Dependency: buildplan.Dependency{
			Version:  buildpackYAML.Config.Version,
			Metadata: buildplan.Metadata{"launch": true},

The output I get (plus my own buildpack) is:

[detector] Trying group of 3...
[detector] ======== Output: Apache HTTP Server Buildpack ========
[detector]        PHP is in the buildplan, so preparing to serve PHP.
[detector] ======== Results ========
[detector] CF Pancake Buildpack: pass
[detector] PHP Buildpack: pass
[detector] Apache HTTP Server Buildpack: pass
===> RESTORING
[restorer] cache image 'pack-cache-37b5d697e610' not found, nothing to restore
===> ANALYZING
[analyzer] WARNING: image 'index.docker.io/library/8id6wrk0chqexwsg:latest' not found or requires authentication to access
[analyzer] WARNING: image 'index.docker.io/library/8id6wrk0chqexwsg:latest' has incompatible 'io.buildpacks.lifecycle.metadata' label
===> BUILDING
[builder] -----> CF Pancake Buildpack 0.3.0
[builder] -----> Pancake 0.2.3: Contributing to layer
[builder]        Downloading from https://github.com/cloudfoundry-community/cf-pancake/releases/download/v0.2.3/cf-pancake-linux-amd64.tar.xz
[builder]        Verifying checksum
[builder]        Installing to /layers/com.starkandwayne.cf-pancake/cf-pancake
[builder]
[builder] -----> PHP Buildpack 0.0.2
[builder]        Dependency version not specified, but is required
[builder]
[builder] -----> Apache HTTP Server Buildpack 0.0.2
[builder]

And my pancake integration tests exit with error failed to launch: determine start command: process type web was not found.

But when I change my integration tests to just [pancake-cnb, httpd-cnb] on a valid httpd-only app, it works.

Should https://github.com/cloudfoundry/httpd-cnb/blob/master/cmd/detect/main.go#L53-L56 be changed to look more like the BuildPlan at the end of the method?

Upgrade to packit v2

Please upgrade to the latest packit v2 release to enable new features and extended support.

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

go: gopkg.in/[email protected]: unrecognized import path "gopkg.in/yaml.v2" (parse https://gopkg.in/yaml.v2?go-get=1: no go-import meta tags ())

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Conform to RFC0043: Reproducible Builds

To conform to RFC0043 this buildpack should ensure that builds are reproducible. Specifically it should not include a built_at metadata field. In the tests that leverage this field to assert layer reuse, we should instead compare layer SHA values across rebuilds.

See also the tracking issue: paketo-buildpacks/rfcs#165.

Add development compatibility API

Add development compatibility API

Describe the Enhancement

RFC 0007 has been approved and merged. This change will help in the development of other buildpacks that are needed to complete the re-architecture. See the tracking issue linked below for more details.

Possible Solution

Create a buildpack that meets the following criteria:

  • Detection
    • Add an or'd provide httpd-development for the initial development period this will be removed once the httpd buildpack has been converted to a dependency providing buildpack.
  • Build
    • Check to see if the provision matched was httpd-development and if so only install the dependency and return.

Motivation

This is part of paketo-buildpacks/web-servers#128

Use a default port is none is given

Describe the Enhancement

Currently, if users don't set the PORT environment variable when running the application image, they can get an error message: Config variable ${PORT} is not defined. It would be reasonable to choose a default value so that the app still starts up even if this variable is unset.

Possible Solution

If the user has not set the PORT environment variable, the buildpack should set a default to 8080 so that the configuration can still be successfully read.

Motivation

Doing this would help to streamline the experience for users of the buildpack and reduce the number of environment variables required to run applications using this buildpack.

Generate basic `http.conf` file when `BP_WEB_SERVER=httpd`

Summary

Implement the most basic case of Web Servers RFC0004. This case will generate a basic, valid httpd.conf file to be used by the start process when the BP_WEB_SERVER environment variable is set to httpd.

Proposal

We'll need to figure out what the simplest possible httpd.conf file would look like to serve files from a directory. In this case, the default directory should be /workspace/public.

Outcome

Given an application including a /public directory containing a set of static files, and not including an httpd.conf file, when I run pack build myapp --buildpack paketo-buildpacks/httpd --env BP_WEB_SERVER=httpd then I should see the application can be built and that the static files are served by HTTPD.

Update module from cloudfoundry -> paketo-buildpacks

The current go.mod file references a github.com/cloudfoundry repo. Now that this repo lives in the paketo-buildpacks org, we should update the module name and the internal import statements in this codebase.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.