Skip to content

nginx buildpack overwrite the existing nginx.conf file #667

@dmitry-mightydevops

Description

@dmitry-mightydevops

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions