nginx buildpack rewrites nginx.conf file, confirmed with
✦ ➜ ls -la
total 500K
drwxr-xr-x. 1 dmitry dmitry 508 Jan 25 21:13 .
drwxrwxr-x. 1 dmitry dmitry 284 Jan 25 15:49 ..
drwxr-xr-x. 1 dmitry dmitry 186 Jan 25 21:11 .git
drwxr-xr-x. 1 dmitry dmitry 38 Jan 25 15:49 .github
drwxr-xr-x. 1 dmitry dmitry 40 Jan 25 19:01 .tekton
drwxr-xr-x. 1 dmitry dmitry 74 Jan 25 18:09 build
drwxr-xr-x. 1 dmitry dmitry 15K Jan 25 16:49 node_modules
drwxr-xr-x. 1 dmitry dmitry 42 Jan 25 15:49 public
drwxr-xr-x. 1 dmitry dmitry 246 Jan 25 15:49 src
-rw-r--r--. 1 dmitry dmitry 290 Jan 25 15:49 .editorconfig
-rw-r--r--. 1 dmitry dmitry 62 Jan 25 15:49 .env.development
-rw-r--r--. 1 dmitry dmitry 5.1K Jan 25 15:49 .eslintrc
-rw-r--r--. 1 dmitry dmitry 323 Jan 25 15:49 .gitignore
-rw-r--r--. 1 dmitry dmitry 98 Jan 25 15:49 .stylelintrc.json
-rw-r--r--. 1 dmitry dmitry 195 Jan 25 15:49 .swcrc
-rw-r--r--. 1 dmitry dmitry 1.4K Jan 25 15:49 README.md
-rw-rw-r--. 1 dmitry dmitry 5.0K Jan 25 21:06 a.conf
-rw-r--r--. 1 dmitry dmitry 411 Jan 25 15:49 index.html
-rw-r--r--. 1 dmitry dmitry 773 Jan 25 15:49 jest.config.ts
-rw-r--r--. 1 dmitry dmitry 427 Jan 25 15:49 jestSetup.ts
-rw-r--r--. 1 dmitry dmitry 2.0K Jan 25 21:05 mime.types
-rw-r--r--. 1 dmitry dmitry 2.3K Jan 25 21:05 nginx.conf
-rw-r--r--. 1 dmitry dmitry 423K Jan 25 16:58 package-lock.json
-rw-r--r--. 1 dmitry dmitry 2.5K Jan 25 16:47 package.json
-rw-r--r--. 1 dmitry dmitry 371 Jan 25 16:58 project.toml
-rw-r--r--. 1 dmitry dmitry 757 Jan 25 15:49 tsconfig.json
-rw-r--r--. 1 dmitry dmitry 468 Jan 25 15:49 vite.config.ts
➜ pack build app --builder paketobuildpacks/builder-jammy-base:latest
...sh
[builder] Completed in 19.606s
[builder]
[builder] Paketo Buildpack for Nginx Server 0.15.6
[builder] Resolving Nginx Server version
[builder] Candidate version sources (in priority order):
[builder] buildpack.toml -> "1.25.*"
[builder]
[builder] Selected Nginx Server version (using buildpack.toml): 1.25.2
[builder]
[builder] Generating /workspace/nginx.conf
[builder] Setting server root directory to '{{ env "APP_ROOT" }}/build'
[builder] Setting server location path to '/'
[builder] Enabling push state routing
[builder]
[builder] Reusing cached layer /layers/paketo-buildpacks_nginx/nginx
[builder]
===> EXPORTING
[exporter] Reusing layer 'paketo-buildpacks/ca-certificates:helper'
[exporter] Reusing layer 'paketo-buildpacks/nginx:nginx'
[exporter] Reusing layer 'buildpacksio/lifecycle:launch.sbom'
[exporter] Adding 1/1 app layer(s)
[exporter] Reusing layer 'buildpacksio/lifecycle:launcher'
[exporter] Reusing layer 'buildpacksio/lifecycle:config'
[exporter] Reusing layer 'buildpacksio/lifecycle:process-types'
[exporter] Adding label 'io.buildpacks.lifecycle.metadata'
[exporter] Adding label 'io.buildpacks.build.metadata'
[exporter] Adding label 'io.buildpacks.project.metadata'
[exporter] Setting default process type 'web'
[exporter] Saving app...
[exporter] *** Images (146b0d67292e):
[exporter] app
[exporter] Reusing cache layer 'paketo-buildpacks/node-engine:node'
[exporter] Reusing cache layer 'paketo-buildpacks/npm-install:build-modules'
[exporter] Reusing cache layer 'paketo-buildpacks/npm-install:npm-cache'
[exporter] Reusing cache layer 'buildpacksio/lifecycle:cache.sbom'
Successfully built image app
as well as in tekton
/cnb/lifecycle/creator \
-app=${source_subpath} \
-cache-dir=${cache_path} \
-cache-image=${cache_image} \
-uid=${user_id} \
-gid=${group_id} \
-layers=/layers \
-platform=/platform \
-report=/layers/report.toml \
-process-type=${process_type} \
-skip-restore=${skip_restore} \
-previous-image=${app_image} \
-run-image=${runner} \
${app_image}
...
[build-buildpack : build] Paketo Buildpack for Nginx Server 0.15.6
[build-buildpack : build] Resolving Nginx Server version
[build-buildpack : build] Candidate version sources (in priority order):
[build-buildpack : build] buildpack.toml -> "1.25.*"
[build-buildpack : build]
[build-buildpack : build] Selected Nginx Server version (using buildpack.toml): 1.25.2
[build-buildpack : build]
[build-buildpack : build] Generating /workspace/source/app/nginx.conf
[build-buildpack : build] Setting server root directory to '{{ env "APP_ROOT" }}/build'
[build-buildpack : build] Setting server location path to '/'
[build-buildpack : build] Enabling push state routing
[build-buildpack : build]
[build-buildpack : build] Executing build process
[build-buildpack : build] Installing Nginx Server 1.25.2
[build-buildpack : build] Completed in 234ms
[build-buildpack : build]
[build-buildpack : build] Configuring build environment
[build-buildpack : build] PATH -> "$PATH:/layers/paketo-buildpacks_nginx/nginx/sbin"
[build-buildpack : build]
[build-buildpack : build] Configuring launch environment
[build-buildpack : build] APP_ROOT -> "/workspace/source/app"
[build-buildpack : build] EXECD_CONF -> "/workspace/source/app/nginx.conf"
[build-buildpack : build] PATH -> "$PATH:/layers/paketo-buildpacks_nginx/nginx/sbin"
[build-buildpack : build] PORT -> "8080"
[build-buildpack : build]
[build-buildpack : build] Assigning launch processes:
[build-buildpack : build] web (default): nginx -p /workspace/source/app -c /workspace/source/app/nginx.conf -g pid /tmp/nginx.pid;
[build-buildpack : build]
[build-buildpack : build] Generating SBOM for /layers/paketo-buildpacks_nginx/nginx
[build-buildpack : build] Completed in 0s
[build-buildpack : build]
content of the nginx.conf in the container is 5.1kb, vs 2.3kb in the repo.
✦ ✗ docker exec -ti app bash
cnb@ccb7ee566e67:/workspace$ ls -la nginx.conf
-rw-rw-r--. 1 1001 cnb 5102 Jan 26 03:50 nginx.conf
cnb@ccb7ee566e67:/workspace$
Expected Behavior
nginx.conf to be reused
Current Behavior
nginx.conf is replaced by the buildpack entirely
Possible Solution
N/A
Steps to Reproduce
project.toml:
✦ ➜ cat project.toml
exclude = [
"/README.md"
]
[[build.buildpacks]]
uri = "paketo-buildpacks/web-servers"
[[ build.env ]]
name="BP_NODE_RUN_SCRIPTS"
value="build"
[[ build.env ]]
name="BP_WEB_SERVER"
value="nginx"
[[ build.env ]]
name="BP_WEB_SERVER_ROOT"
value="build"
[[ build.env ]]
name="BP_WEB_SERVER_ENABLE_PUSH_STATE"
value="true"
place a nginx.conf in the roof of any repo and run
pack build app:new --builder paketobuildpacks/builder-jammy-base:latest
nginx buildpack rewrites nginx.conf file, confirmed with
as well as in tekton
/cnb/lifecycle/creator \ -app=${source_subpath} \ -cache-dir=${cache_path} \ -cache-image=${cache_image} \ -uid=${user_id} \ -gid=${group_id} \ -layers=/layers \ -platform=/platform \ -report=/layers/report.toml \ -process-type=${process_type} \ -skip-restore=${skip_restore} \ -previous-image=${app_image} \ -run-image=${runner} \ ${app_image} ... [build-buildpack : build] Paketo Buildpack for Nginx Server 0.15.6 [build-buildpack : build] Resolving Nginx Server version [build-buildpack : build] Candidate version sources (in priority order): [build-buildpack : build] buildpack.toml -> "1.25.*" [build-buildpack : build] [build-buildpack : build] Selected Nginx Server version (using buildpack.toml): 1.25.2 [build-buildpack : build] [build-buildpack : build] Generating /workspace/source/app/nginx.conf [build-buildpack : build] Setting server root directory to '{{ env "APP_ROOT" }}/build' [build-buildpack : build] Setting server location path to '/' [build-buildpack : build] Enabling push state routing [build-buildpack : build] [build-buildpack : build] Executing build process [build-buildpack : build] Installing Nginx Server 1.25.2 [build-buildpack : build] Completed in 234ms [build-buildpack : build] [build-buildpack : build] Configuring build environment [build-buildpack : build] PATH -> "$PATH:/layers/paketo-buildpacks_nginx/nginx/sbin" [build-buildpack : build] [build-buildpack : build] Configuring launch environment [build-buildpack : build] APP_ROOT -> "/workspace/source/app" [build-buildpack : build] EXECD_CONF -> "/workspace/source/app/nginx.conf" [build-buildpack : build] PATH -> "$PATH:/layers/paketo-buildpacks_nginx/nginx/sbin" [build-buildpack : build] PORT -> "8080" [build-buildpack : build] [build-buildpack : build] Assigning launch processes: [build-buildpack : build] web (default): nginx -p /workspace/source/app -c /workspace/source/app/nginx.conf -g pid /tmp/nginx.pid; [build-buildpack : build] [build-buildpack : build] Generating SBOM for /layers/paketo-buildpacks_nginx/nginx [build-buildpack : build] Completed in 0s [build-buildpack : build]content of the nginx.conf in the container is 5.1kb, vs 2.3kb in the repo.
✦ ✗ docker exec -ti app bash cnb@ccb7ee566e67:/workspace$ ls -la nginx.conf -rw-rw-r--. 1 1001 cnb 5102 Jan 26 03:50 nginx.conf cnb@ccb7ee566e67:/workspace$Expected Behavior
nginx.conf to be reused
Current Behavior
nginx.conf is replaced by the buildpack entirely
Possible Solution
N/A
Steps to Reproduce
project.toml:
place a nginx.conf in the roof of any repo and run