Skip to content

Onboard to distgen generated sources#381

Open
ndavidova wants to merge 17 commits into
masterfrom
ndavidov/distgen
Open

Onboard to distgen generated sources#381
ndavidova wants to merge 17 commits into
masterfrom
ndavidov/distgen

Conversation

@ndavidova

@ndavidova ndavidova commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Added automated generation for versioned NGINX container images across supported operating systems and image variants.
    • Improved container builds with configurable package installation, runtime metadata, non-root identity support, and application configuration handling.
    • Added support for extending NGINX configuration, startup hooks, Perl modules, and application assets.
  • Documentation

    • Expanded usage, build, contribution, supported-version, and platform guidance.
  • Tests

    • Added automated distribution-generation validation to the CI pipeline.

ndavidova added 13 commits May 18, 2026 17:04
Use Jinja2 conditional to handle empty environment_setup properly.
When environment_setup is empty (Fedora, C10S, RHEL10), generate
'RUN INSTALL_PKGS=...' instead of 'RUN \n    INSTALL_PKGS=...'
which caused build failures.
Changed from 'CMD $STI_SCRIPTS_PATH/usage' to 'CMD ["/usr/libexec/s2i/usage"]'
to follow Docker best practices and prevent build warnings from breaking
image ID extraction in build scripts.
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6bd3ebe9-1ae2-4a4d-8999-4fc1b5051408

📥 Commits

Reviewing files that changed from the base of the PR and between 8b6fd55 and b8cc8ea.

📒 Files selected for processing (188)
  • .github/workflows/container-tests.yml
  • 1.20/.exclude-c9s
  • 1.20/.exclude-fedora
  • 1.20/.exclude-rhel8
  • 1.20/Dockerfile.c9s
  • 1.20/Dockerfile.fedora
  • 1.20/Dockerfile.rhel8
  • 1.20/Dockerfile.rhel9
  • 1.20/README.md
  • 1.20/root/opt/app-root/etc/generate_container_user
  • 1.20/root/opt/app-root/nginxconf-rhscl.sed
  • 1.20/s2i/bin/assemble
  • 1.20/test
  • 1.20/test/__init__.py
  • 1.20/test/conftest.py
  • 1.20/test/constants.py
  • 1.20/test/examples
  • 1.20/test/imagestreams
  • 1.20/test/run
  • 1.20/test/run-openshift-pytest
  • 1.20/test/run-openshift-remote-cluster
  • 1.20/test/run-pytest
  • 1.20/test/test-app
  • 1.20/test/test-lib-nginx.sh
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/test-lib.sh
  • 1.20/test/test-openshift.yaml
  • 1.20/test/test_container_application.py
  • 1.20/test/test_container_basics.py
  • 1.20/test/test_container_example_apps.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.20/test/test_ocp_imagestreams.py
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22-micro/.exclude-fedora
  • 1.22-micro/Dockerfile.c9s
  • 1.22-micro/Dockerfile.rhel8
  • 1.22-micro/README.md
  • 1.22-micro/core-scripts
  • 1.22-micro/root
  • 1.22-micro/s2i
  • 1.22-micro/test
  • 1.22/.exclude-c9s
  • 1.22/.exclude-fedora
  • 1.22/Dockerfile.c9s
  • 1.22/Dockerfile.fedora
  • 1.22/Dockerfile.rhel8
  • 1.22/Dockerfile.rhel9
  • 1.22/README.md
  • 1.22/root/opt/app-root/etc/generate_container_user
  • 1.22/test
  • 1.22/test/__init__.py
  • 1.22/test/conftest.py
  • 1.22/test/examples
  • 1.22/test/imagestreams
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.22/test/perl-test-app/nginx.conf
  • 1.22/test/run
  • 1.22/test/run-openshift-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.22/test/run-pytest
  • 1.22/test/start-hook-test-app/index.html
  • 1.22/test/start-hook-test-app/index2.html
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.22/test/test-app
  • 1.22/test/test-lib-nginx.sh
  • 1.22/test/test-lib-openshift.sh
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test-lib.sh
  • 1.22/test/test-openshift.yaml
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_basics.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test_container_sizes.py
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test_ocp_imagestreams.py
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.24/.exclude-c8s
  • 1.24/.exclude-fedora
  • 1.24/Dockerfile.c9s
  • 1.24/Dockerfile.rhel8
  • 1.24/README.md
  • 1.24/root/opt/app-root/etc/generate_container_user
  • 1.24/test
  • 1.24/test/__init__.py
  • 1.24/test/conftest.py
  • 1.24/test/constants.py
  • 1.24/test/examples
  • 1.24/test/imagestreams
  • 1.24/test/perl-test-app/index.html
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/run
  • 1.24/test/run-openshift-pytest
  • 1.24/test/run-openshift-remote-cluster
  • 1.24/test/run-pytest
  • 1.24/test/start-hook-test-app/index.html
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.24/test/test-app
  • 1.24/test/test-lib.sh
  • 1.24/test/test_container_application.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_container_example_apps.py
  • 1.24/test/test_container_sizes.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.24/test/test_ocp_template_example_app.py
  • 1.26/.exclude-rhel8
  • 1.26/Dockerfile.c10s
  • 1.26/Dockerfile.c9s
  • 1.26/Dockerfile.fedora
  • 1.26/Dockerfile.rhel10
  • 1.26/Dockerfile.rhel8
  • 1.26/root/opt/app-root/etc/generate_container_user
  • 1.26/test
  • 1.26/test/__init__.py
  • 1.26/test/conftest.py
  • 1.26/test/examples
  • 1.26/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/perl-test-app/nginx.conf
  • 1.26/test/run
  • 1.26/test/run-openshift-remote-cluster
  • 1.26/test/run-pytest
  • 1.26/test/start-hook-test-app/index.html
  • 1.26/test/start-hook-test-app/index2.html
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-app
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-lib-openshift.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.26/test/test-lib.sh
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_container_basics.py
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_container_sizes.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.26/test/test_ocp_imagestreams.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/test_ocp_template_example_app.py
  • Makefile
  • README.md
  • manifest-micro.yml
  • manifest.yml
  • specs/multispec.yml
  • src/Dockerfile
  • src/Dockerfile.fedora
  • src/Dockerfile.micro
  • src/README.md
  • src/root/opt/app-root/etc/generate_container_user
  • src/root/opt/app-root/etc/passwd.template
  • src/root/opt/app-root/nginxconf-rhscl.sed
  • src/root/opt/app-root/nginxconf.sed
  • src/root/usr/share/container-scripts/nginx/common.sh
  • src/s2i/bin/assemble
  • src/s2i/bin/run
  • src/s2i/bin/usage
  • test/perl-test-app/index.html
  • test/perl-test-app/nginx-perl/Version.pm
  • test/perl-test-app/nginx.conf
  • test/start-hook-test-app/index.html
  • test/start-hook-test-app/index2.html
  • test/start-hook-test-app/nginx-cfg/default.conf
  • test/start-hook-test-app/nginx-start/init.sh
  • test/test-app
💤 Files with no reviewable changes (125)
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_container_sizes.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/examples
  • 1.22/test/test-lib-nginx.sh
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.26/test/perl-test-app/nginx.conf
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/examples
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_container_application.py
  • 1.20/test/run-openshift-remote-cluster
  • 1.24/test/run-openshift-remote-cluster
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/start-hook-test-app/index2.html
  • 1.24/test/imagestreams
  • 1.24/test/run
  • 1.26/test/run-pytest
  • 1.20/Dockerfile.fedora
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/conftest.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test-openshift.yaml
  • 1.26/test/init.py
  • 1.26/test/test_ocp_template_example_app.py
  • 1.22/test/test_container_basics.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.20/test/init.py
  • 1.22/test/perl-test-app/nginx.conf
  • 1.24/test/run-openshift-pytest
  • 1.24/test/init.py
  • 1.22/test/start-hook-test-app/index.html
  • 1.20/test/test-lib.sh
  • 1.22/test/imagestreams
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-app
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_sizes.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.26/test/test-lib-openshift.sh
  • 1.22/test/run-openshift-pytest
  • 1.24/test/test_ocp_template_example_app.py
  • 1.24/test/examples
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/start-hook-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/conftest.py
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.24/test/run-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/run
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.22/test/start-hook-test-app/index2.html
  • 1.26/test/run
  • 1.22/Dockerfile.rhel9
  • 1.24/test/start-hook-test-app/index.html
  • 1.20/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_application.py
  • 1.22/test/run-pytest
  • 1.22/test/test_container_sizes.py
  • 1.24/test/conftest.py
  • 1.24/test/test-lib.sh
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/test-lib-openshift.sh
  • 1.20/test/test-lib-nginx.sh
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test-app
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.20/test/run
  • 1.26/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_example_apps.py
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/constants.py
  • 1.22/Dockerfile.fedora
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/run-openshift-pytest
  • 1.26/test/test_container_basics.py
  • 1.24/test/perl-test-app/index.html
  • 1.20/test/test_container_example_apps.py
  • 1.22/test/test-app
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.24/test/constants.py
  • 1.26/Dockerfile.rhel8
  • 1.20/test/run-pytest
  • 1.20/test/test_container_basics.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/run-openshift-remote-cluster
  • 1.22/test/test_ocp_imagestreams.py
  • 1.26/test/test-lib.sh
  • 1.22/test/conftest.py
  • 1.22/test/init.py
  • 1.22/test/examples
  • 1.22/Dockerfile.c9s
  • 1.24/test/test-app
  • 1.20/Dockerfile.c9s
  • 1.26/test/imagestreams
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test-lib.sh
  • 1.22-micro/Dockerfile.rhel8

📝 Walkthrough

Walkthrough

The pull request migrates nginx image generation to distgen, adds multispec-driven Dockerfile templates and runtime scripts, updates generated versioned outputs and documentation, centralizes test assets, and adds CI validation through the distgen-check workflow.

Changes

Distgen image generation

Layer / File(s) Summary
Generation contracts and orchestration
Makefile, manifest*.yml, specs/multispec.yml, .github/workflows/*, README.md
Adds distgen manifests, platform/version matrices, generation targets, CI validation, and contribution guidance.
Templated builds and runtime behavior
src/Dockerfile*, src/s2i/*, src/root/*, src/README.md
Parameterizes image builds and adds shared identity setup, nginx configuration transforms, S2I assembly/run/usage scripts, and image documentation.
Generated image outputs and metadata
1.20/*, 1.22*/*, 1.24/*, 1.26/*
Updates generated Dockerfiles, package names, image labels, versioned asset paths, documentation references, and shared symlink targets.
Test assets and shared test links
test/*, 1.20/test/*, 1.22/test/*, 1.24/test/*, 1.26/test/*
Adds Perl and start-hook fixtures and redirects versioned test paths to shared test content while removing selected obsolete references.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Contributor
  participant Makefile
  participant Distgen
  participant ImageTree
  Contributor->>Makefile: run make generate
  Makefile->>Distgen: select manifest and multispec data
  Distgen->>ImageTree: render Dockerfiles, runtime files, and links
  ImageTree-->>Contributor: generated versioned image directories
Loading

Possibly related PRs

Suggested reviewers: pkhartsk

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the main change: onboarding the repository to distgen-generated sources.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ndavidov/distgen

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Pull Request validation

Failed

🔴 Failed or pending statuses:

  • CodeRabbit[pending]

🔴 Approval - missing or changes were requested

Success

🟢 Review - Reviewed by a member


Triggered by Workflow Run

@ndavidova

Copy link
Copy Markdown
Contributor Author

[test]

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Testing Farm results

namecomposearchstatusstarted (UTC)timelogs
Fedora - 1.26Fedora-latestx86_64✅ passed09.06.2026 10:35:116min 34stest pipeline
CentOS Stream 9 - 1.24CentOS-Stream-9x86_64❌ error01.06.2026 10:30:4916min 60stest pipeline
CentOS Stream 9 - 1.22-microCentOS-Stream-9x86_64✅ passed01.06.2026 10:30:4818min 41stest pipeline
RHEL8 - 1.22-microRHEL-8.10.0-Nightlyx86_64❌ error01.06.2026 10:30:4819min 38stest pipeline
RHEL8 - 1.22RHEL-8.10.0-Nightlyx86_64❌ error01.06.2026 10:30:4819min 44stest pipeline
RHEL8 - 1.24RHEL-8.10.0-Nightlyx86_64❌ error01.06.2026 10:30:4920min 49stest pipeline
RHEL10 - Unsubscribed host - 1.26RHEL-10.2-Nightlyx86_64✅ passed01.06.2026 10:30:4826min 39stest pipeline
CentOS Stream 10 - 1.26CentOS-Stream-10x86_64✅ passed01.06.2026 10:49:289min 51stest pipeline
RHEL9 - Unsubscribed host - 1.20RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:30:4829min 29stest pipeline
RHEL9 - Unsubscribed host - 1.22RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:30:5029min 26stest pipeline
RHEL9 - 1.20RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:30:4830min 10stest pipeline
RHEL9 - 1.22RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:30:4832min 23stest pipeline
RHEL9 - Unsubscribed host - 1.24RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:30:4835min 17stest pipeline
RHEL10 - 1.26RHEL-10.2-Nightlyx86_64✅ passed01.06.2026 10:53:1615min 60stest pipeline
RHEL8 - 1.20RHEL-8.10.0-Nightlyx86_64✅ passed01.06.2026 10:59:1311min 48stest pipeline
RHEL9 - Unsubscribed host - 1.26RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:51:2018min 6stest pipeline
RHEL9 - 1.26RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:51:1520min 10stest pipeline
RHEL9 - 1.24RHEL-9.8.0-Nightlyx86_64✅ passed01.06.2026 10:51:1220min 46stest pipeline

@phracek

phracek commented Jun 8, 2026

Copy link
Copy Markdown
Member

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ndavidova
ndavidova marked this pull request as ready for review June 17, 2026 10:25

@phracek phracek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this pull request. Great.

There is inverted logic.
See here: https://github.com/sclorg/postgresql-container/blob/master/manifest.yml#L47

Comment thread manifest-micro.yml
# This section is the last one on purpose because the generator.py
# does not allow dead symlinks.
SYMLINK_RULES:
- src: ../1.22/root

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should opposite.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inverted logic :)

Comment thread src/Dockerfile.micro
io.openshift.tags="builder,${NAME},${NAME}-${NGINX_SHORT_VER}" \
com.redhat.component="${NAME}-${NGINX_SHORT_VER}-container" \
name="{{ spec.org }}/${NAME}-${NGINX_SHORT_VER}-micro" \
{% if spec.prod in ["rhel8", "rhel9", "c8s", "c9s"] %}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not need at all. Please delete it.

Comment thread src/Dockerfile.micro Outdated
FROM {{ spec.micro_build_base }} AS build

RUN mkdir -p /mnt/rootfs
{% if spec.prod == "rhel8" %}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we somehow make it more readable.

What about to add to multispec.yml more specification and use it there

Comment thread src/Dockerfile.micro
INSTALL_PKGS="$MICRO_PKGS nginx-core findutils hostname nss_wrapper-libs gettext " && \
dnf install --installroot /mnt/rootfs $INSTALL_PKGS --releasever 36 --setopt install_weak_deps=false --nodocs -y && \
INSTALL_PKGS="$MICRO_PKGS {{ spec.micro_pkgs }} " && \
dnf --installroot /mnt/rootfs --releasever {{ spec.micro_releasever }} --setopt install_weak_deps=false --nodocs module enable nginx:{{ spec.version }} -y && \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is repeating. Let's make it easier. More it to multispec.yml

Comment thread src/README.md Outdated

Usage in OpenShift
------------------
In this example, we assume that you are using the `ubi9/nginx-{{ spec.short }}` image, available through the `nginx:{{ spec.version }}` imagestream tag in Openshift.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file has hardcoded ubi9 multiple times.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/container-tests.yml:
- Around line 7-8: Update the distgen-check reusable workflow reference to use a
reviewed immutable commit SHA instead of `@main`, and add an explicit minimal
permissions block in the workflow configuration so jobs do not inherit default
token permissions. Apply this consistently to the sclorg/ci-actions reusable
workflows in container-tests.yml.

In `@1.20/README.md`:
- Around line 202-204: Update the Dockerfile variant list in the README to
include Dockerfile.rhel9 alongside the existing RHEL, CentOS Stream, and Fedora
entries, keeping the documented list synchronized with the generated Dockerfile
outputs.

In `@1.22-micro/README.md`:
- Around line 68-69: Remove the ./nginx-perl/*.pm documentation entry from
1.22-micro/README.md, since Dockerfile.c9s does not install or configure Perl
module support; do not document payloads unavailable in the micro image.
- Around line 1-4: Update the README description to use the exact user-facing
terms “reverse proxy server” and “Fedora-based,” correcting the current “reverse
server” and “Fedora based” wording while preserving the surrounding content.

In `@README.md`:
- Line 83: Update the “Contributing Guidelines” heading in README.md to use the
repository’s configured setext heading style instead of ATX syntax, preserving
the existing heading text.

In `@src/README.md`:
- Around line 199-204: Update the documentation sentence near the container
image Dockerfile references to replace “Python environment Dockerfiles” with
wording that correctly describes Nginx image Dockerfiles. Preserve the listed
repository, platform names, and Dockerfile filenames unchanged.
- Around line 25-30: Update the test-app repository references in the README
example to use {{ spec.version }}/test/test-app consistently, including the
GitHub link and the related cd command, while preserving the existing oc new-app
context directory.

In `@test/perl-test-app/index.html`:
- Line 1: Add the HTML5 doctype as the first line of
test/perl-test-app/index.html, test/start-hook-test-app/index.html, and
test/start-hook-test-app/index2.html, before each existing html element.

In `@test/perl-test-app/nginx.conf`:
- Around line 59-64: Update the 404 error_page directive and its adjacent
exact-match location so both use the same URI, ensuring 404 responses select
that location; leave the existing 500–504 error handling unchanged.

In `@test/start-hook-test-app/nginx-start/init.sh`:
- Around line 17-19: Align the startup hook’s INDEX_FILE assignment with the
integration test contract by selecting index.html, or update the test
expectation to match index2.html’s “NGINX2 is working” content. Keep the hook
and test consistent so the expected response matches the selected index file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6bd3ebe9-1ae2-4a4d-8999-4fc1b5051408

📥 Commits

Reviewing files that changed from the base of the PR and between 8b6fd55 and b8cc8ea.

📒 Files selected for processing (188)
  • .github/workflows/container-tests.yml
  • 1.20/.exclude-c9s
  • 1.20/.exclude-fedora
  • 1.20/.exclude-rhel8
  • 1.20/Dockerfile.c9s
  • 1.20/Dockerfile.fedora
  • 1.20/Dockerfile.rhel8
  • 1.20/Dockerfile.rhel9
  • 1.20/README.md
  • 1.20/root/opt/app-root/etc/generate_container_user
  • 1.20/root/opt/app-root/nginxconf-rhscl.sed
  • 1.20/s2i/bin/assemble
  • 1.20/test
  • 1.20/test/__init__.py
  • 1.20/test/conftest.py
  • 1.20/test/constants.py
  • 1.20/test/examples
  • 1.20/test/imagestreams
  • 1.20/test/run
  • 1.20/test/run-openshift-pytest
  • 1.20/test/run-openshift-remote-cluster
  • 1.20/test/run-pytest
  • 1.20/test/test-app
  • 1.20/test/test-lib-nginx.sh
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/test-lib.sh
  • 1.20/test/test-openshift.yaml
  • 1.20/test/test_container_application.py
  • 1.20/test/test_container_basics.py
  • 1.20/test/test_container_example_apps.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.20/test/test_ocp_imagestreams.py
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22-micro/.exclude-fedora
  • 1.22-micro/Dockerfile.c9s
  • 1.22-micro/Dockerfile.rhel8
  • 1.22-micro/README.md
  • 1.22-micro/core-scripts
  • 1.22-micro/root
  • 1.22-micro/s2i
  • 1.22-micro/test
  • 1.22/.exclude-c9s
  • 1.22/.exclude-fedora
  • 1.22/Dockerfile.c9s
  • 1.22/Dockerfile.fedora
  • 1.22/Dockerfile.rhel8
  • 1.22/Dockerfile.rhel9
  • 1.22/README.md
  • 1.22/root/opt/app-root/etc/generate_container_user
  • 1.22/test
  • 1.22/test/__init__.py
  • 1.22/test/conftest.py
  • 1.22/test/examples
  • 1.22/test/imagestreams
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.22/test/perl-test-app/nginx.conf
  • 1.22/test/run
  • 1.22/test/run-openshift-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.22/test/run-pytest
  • 1.22/test/start-hook-test-app/index.html
  • 1.22/test/start-hook-test-app/index2.html
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.22/test/test-app
  • 1.22/test/test-lib-nginx.sh
  • 1.22/test/test-lib-openshift.sh
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test-lib.sh
  • 1.22/test/test-openshift.yaml
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_basics.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test_container_sizes.py
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test_ocp_imagestreams.py
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.24/.exclude-c8s
  • 1.24/.exclude-fedora
  • 1.24/Dockerfile.c9s
  • 1.24/Dockerfile.rhel8
  • 1.24/README.md
  • 1.24/root/opt/app-root/etc/generate_container_user
  • 1.24/test
  • 1.24/test/__init__.py
  • 1.24/test/conftest.py
  • 1.24/test/constants.py
  • 1.24/test/examples
  • 1.24/test/imagestreams
  • 1.24/test/perl-test-app/index.html
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/run
  • 1.24/test/run-openshift-pytest
  • 1.24/test/run-openshift-remote-cluster
  • 1.24/test/run-pytest
  • 1.24/test/start-hook-test-app/index.html
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.24/test/test-app
  • 1.24/test/test-lib.sh
  • 1.24/test/test_container_application.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_container_example_apps.py
  • 1.24/test/test_container_sizes.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.24/test/test_ocp_template_example_app.py
  • 1.26/.exclude-rhel8
  • 1.26/Dockerfile.c10s
  • 1.26/Dockerfile.c9s
  • 1.26/Dockerfile.fedora
  • 1.26/Dockerfile.rhel10
  • 1.26/Dockerfile.rhel8
  • 1.26/root/opt/app-root/etc/generate_container_user
  • 1.26/test
  • 1.26/test/__init__.py
  • 1.26/test/conftest.py
  • 1.26/test/examples
  • 1.26/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/perl-test-app/nginx.conf
  • 1.26/test/run
  • 1.26/test/run-openshift-remote-cluster
  • 1.26/test/run-pytest
  • 1.26/test/start-hook-test-app/index.html
  • 1.26/test/start-hook-test-app/index2.html
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-app
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-lib-openshift.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.26/test/test-lib.sh
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_container_basics.py
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_container_sizes.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.26/test/test_ocp_imagestreams.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/test_ocp_template_example_app.py
  • Makefile
  • README.md
  • manifest-micro.yml
  • manifest.yml
  • specs/multispec.yml
  • src/Dockerfile
  • src/Dockerfile.fedora
  • src/Dockerfile.micro
  • src/README.md
  • src/root/opt/app-root/etc/generate_container_user
  • src/root/opt/app-root/etc/passwd.template
  • src/root/opt/app-root/nginxconf-rhscl.sed
  • src/root/opt/app-root/nginxconf.sed
  • src/root/usr/share/container-scripts/nginx/common.sh
  • src/s2i/bin/assemble
  • src/s2i/bin/run
  • src/s2i/bin/usage
  • test/perl-test-app/index.html
  • test/perl-test-app/nginx-perl/Version.pm
  • test/perl-test-app/nginx.conf
  • test/start-hook-test-app/index.html
  • test/start-hook-test-app/index2.html
  • test/start-hook-test-app/nginx-cfg/default.conf
  • test/start-hook-test-app/nginx-start/init.sh
  • test/test-app
💤 Files with no reviewable changes (125)
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_container_sizes.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/examples
  • 1.22/test/test-lib-nginx.sh
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.26/test/perl-test-app/nginx.conf
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/examples
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_container_application.py
  • 1.20/test/run-openshift-remote-cluster
  • 1.24/test/run-openshift-remote-cluster
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/start-hook-test-app/index2.html
  • 1.24/test/imagestreams
  • 1.24/test/run
  • 1.26/test/run-pytest
  • 1.20/Dockerfile.fedora
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/conftest.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test-openshift.yaml
  • 1.26/test/init.py
  • 1.26/test/test_ocp_template_example_app.py
  • 1.22/test/test_container_basics.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.20/test/init.py
  • 1.22/test/perl-test-app/nginx.conf
  • 1.24/test/run-openshift-pytest
  • 1.24/test/init.py
  • 1.22/test/start-hook-test-app/index.html
  • 1.20/test/test-lib.sh
  • 1.22/test/imagestreams
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-app
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_sizes.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.26/test/test-lib-openshift.sh
  • 1.22/test/run-openshift-pytest
  • 1.24/test/test_ocp_template_example_app.py
  • 1.24/test/examples
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/start-hook-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/conftest.py
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.24/test/run-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/run
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.22/test/start-hook-test-app/index2.html
  • 1.26/test/run
  • 1.22/Dockerfile.rhel9
  • 1.24/test/start-hook-test-app/index.html
  • 1.20/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_application.py
  • 1.22/test/run-pytest
  • 1.22/test/test_container_sizes.py
  • 1.24/test/conftest.py
  • 1.24/test/test-lib.sh
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/test-lib-openshift.sh
  • 1.20/test/test-lib-nginx.sh
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test-app
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.20/test/run
  • 1.26/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_example_apps.py
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/constants.py
  • 1.22/Dockerfile.fedora
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/run-openshift-pytest
  • 1.26/test/test_container_basics.py
  • 1.24/test/perl-test-app/index.html
  • 1.20/test/test_container_example_apps.py
  • 1.22/test/test-app
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.24/test/constants.py
  • 1.26/Dockerfile.rhel8
  • 1.20/test/run-pytest
  • 1.20/test/test_container_basics.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/run-openshift-remote-cluster
  • 1.22/test/test_ocp_imagestreams.py
  • 1.26/test/test-lib.sh
  • 1.22/test/conftest.py
  • 1.22/test/init.py
  • 1.22/test/examples
  • 1.22/Dockerfile.c9s
  • 1.24/test/test-app
  • 1.20/Dockerfile.c9s
  • 1.26/test/imagestreams
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test-lib.sh
  • 1.22-micro/Dockerfile.rhel8

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 10

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/container-tests.yml:
- Around line 7-8: Update the distgen-check reusable workflow reference to use a
reviewed immutable commit SHA instead of `@main`, and add an explicit minimal
permissions block in the workflow configuration so jobs do not inherit default
token permissions. Apply this consistently to the sclorg/ci-actions reusable
workflows in container-tests.yml.

In `@1.20/README.md`:
- Around line 202-204: Update the Dockerfile variant list in the README to
include Dockerfile.rhel9 alongside the existing RHEL, CentOS Stream, and Fedora
entries, keeping the documented list synchronized with the generated Dockerfile
outputs.

In `@1.22-micro/README.md`:
- Around line 68-69: Remove the ./nginx-perl/*.pm documentation entry from
1.22-micro/README.md, since Dockerfile.c9s does not install or configure Perl
module support; do not document payloads unavailable in the micro image.
- Around line 1-4: Update the README description to use the exact user-facing
terms “reverse proxy server” and “Fedora-based,” correcting the current “reverse
server” and “Fedora based” wording while preserving the surrounding content.

In `@README.md`:
- Line 83: Update the “Contributing Guidelines” heading in README.md to use the
repository’s configured setext heading style instead of ATX syntax, preserving
the existing heading text.

In `@src/README.md`:
- Around line 199-204: Update the documentation sentence near the container
image Dockerfile references to replace “Python environment Dockerfiles” with
wording that correctly describes Nginx image Dockerfiles. Preserve the listed
repository, platform names, and Dockerfile filenames unchanged.
- Around line 25-30: Update the test-app repository references in the README
example to use {{ spec.version }}/test/test-app consistently, including the
GitHub link and the related cd command, while preserving the existing oc new-app
context directory.

In `@test/perl-test-app/index.html`:
- Line 1: Add the HTML5 doctype as the first line of
test/perl-test-app/index.html, test/start-hook-test-app/index.html, and
test/start-hook-test-app/index2.html, before each existing html element.

In `@test/perl-test-app/nginx.conf`:
- Around line 59-64: Update the 404 error_page directive and its adjacent
exact-match location so both use the same URI, ensuring 404 responses select
that location; leave the existing 500–504 error handling unchanged.

In `@test/start-hook-test-app/nginx-start/init.sh`:
- Around line 17-19: Align the startup hook’s INDEX_FILE assignment with the
integration test contract by selecting index.html, or update the test
expectation to match index2.html’s “NGINX2 is working” content. Keep the hook
and test consistent so the expected response matches the selected index file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6bd3ebe9-1ae2-4a4d-8999-4fc1b5051408

📥 Commits

Reviewing files that changed from the base of the PR and between 8b6fd55 and b8cc8ea.

📒 Files selected for processing (188)
  • .github/workflows/container-tests.yml
  • 1.20/.exclude-c9s
  • 1.20/.exclude-fedora
  • 1.20/.exclude-rhel8
  • 1.20/Dockerfile.c9s
  • 1.20/Dockerfile.fedora
  • 1.20/Dockerfile.rhel8
  • 1.20/Dockerfile.rhel9
  • 1.20/README.md
  • 1.20/root/opt/app-root/etc/generate_container_user
  • 1.20/root/opt/app-root/nginxconf-rhscl.sed
  • 1.20/s2i/bin/assemble
  • 1.20/test
  • 1.20/test/__init__.py
  • 1.20/test/conftest.py
  • 1.20/test/constants.py
  • 1.20/test/examples
  • 1.20/test/imagestreams
  • 1.20/test/run
  • 1.20/test/run-openshift-pytest
  • 1.20/test/run-openshift-remote-cluster
  • 1.20/test/run-pytest
  • 1.20/test/test-app
  • 1.20/test/test-lib-nginx.sh
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/test-lib.sh
  • 1.20/test/test-openshift.yaml
  • 1.20/test/test_container_application.py
  • 1.20/test/test_container_basics.py
  • 1.20/test/test_container_example_apps.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.20/test/test_ocp_imagestreams.py
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22-micro/.exclude-fedora
  • 1.22-micro/Dockerfile.c9s
  • 1.22-micro/Dockerfile.rhel8
  • 1.22-micro/README.md
  • 1.22-micro/core-scripts
  • 1.22-micro/root
  • 1.22-micro/s2i
  • 1.22-micro/test
  • 1.22/.exclude-c9s
  • 1.22/.exclude-fedora
  • 1.22/Dockerfile.c9s
  • 1.22/Dockerfile.fedora
  • 1.22/Dockerfile.rhel8
  • 1.22/Dockerfile.rhel9
  • 1.22/README.md
  • 1.22/root/opt/app-root/etc/generate_container_user
  • 1.22/test
  • 1.22/test/__init__.py
  • 1.22/test/conftest.py
  • 1.22/test/examples
  • 1.22/test/imagestreams
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.22/test/perl-test-app/nginx.conf
  • 1.22/test/run
  • 1.22/test/run-openshift-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.22/test/run-pytest
  • 1.22/test/start-hook-test-app/index.html
  • 1.22/test/start-hook-test-app/index2.html
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.22/test/test-app
  • 1.22/test/test-lib-nginx.sh
  • 1.22/test/test-lib-openshift.sh
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test-lib.sh
  • 1.22/test/test-openshift.yaml
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_basics.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test_container_sizes.py
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test_ocp_imagestreams.py
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.24/.exclude-c8s
  • 1.24/.exclude-fedora
  • 1.24/Dockerfile.c9s
  • 1.24/Dockerfile.rhel8
  • 1.24/README.md
  • 1.24/root/opt/app-root/etc/generate_container_user
  • 1.24/test
  • 1.24/test/__init__.py
  • 1.24/test/conftest.py
  • 1.24/test/constants.py
  • 1.24/test/examples
  • 1.24/test/imagestreams
  • 1.24/test/perl-test-app/index.html
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/run
  • 1.24/test/run-openshift-pytest
  • 1.24/test/run-openshift-remote-cluster
  • 1.24/test/run-pytest
  • 1.24/test/start-hook-test-app/index.html
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.24/test/test-app
  • 1.24/test/test-lib.sh
  • 1.24/test/test_container_application.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_container_example_apps.py
  • 1.24/test/test_container_sizes.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.24/test/test_ocp_template_example_app.py
  • 1.26/.exclude-rhel8
  • 1.26/Dockerfile.c10s
  • 1.26/Dockerfile.c9s
  • 1.26/Dockerfile.fedora
  • 1.26/Dockerfile.rhel10
  • 1.26/Dockerfile.rhel8
  • 1.26/root/opt/app-root/etc/generate_container_user
  • 1.26/test
  • 1.26/test/__init__.py
  • 1.26/test/conftest.py
  • 1.26/test/examples
  • 1.26/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/perl-test-app/nginx.conf
  • 1.26/test/run
  • 1.26/test/run-openshift-remote-cluster
  • 1.26/test/run-pytest
  • 1.26/test/start-hook-test-app/index.html
  • 1.26/test/start-hook-test-app/index2.html
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-app
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-lib-openshift.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.26/test/test-lib.sh
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_container_basics.py
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_container_sizes.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.26/test/test_ocp_imagestreams.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/test_ocp_template_example_app.py
  • Makefile
  • README.md
  • manifest-micro.yml
  • manifest.yml
  • specs/multispec.yml
  • src/Dockerfile
  • src/Dockerfile.fedora
  • src/Dockerfile.micro
  • src/README.md
  • src/root/opt/app-root/etc/generate_container_user
  • src/root/opt/app-root/etc/passwd.template
  • src/root/opt/app-root/nginxconf-rhscl.sed
  • src/root/opt/app-root/nginxconf.sed
  • src/root/usr/share/container-scripts/nginx/common.sh
  • src/s2i/bin/assemble
  • src/s2i/bin/run
  • src/s2i/bin/usage
  • test/perl-test-app/index.html
  • test/perl-test-app/nginx-perl/Version.pm
  • test/perl-test-app/nginx.conf
  • test/start-hook-test-app/index.html
  • test/start-hook-test-app/index2.html
  • test/start-hook-test-app/nginx-cfg/default.conf
  • test/start-hook-test-app/nginx-start/init.sh
  • test/test-app
💤 Files with no reviewable changes (125)
  • 1.20/test/test_ocp_shared_helm_imagestreams.py
  • 1.24/test/test_container_sizes.py
  • 1.26/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/examples
  • 1.22/test/test-lib-nginx.sh
  • 1.24/test/test_ocp_local_example.py
  • 1.24/test/test_container_basics.py
  • 1.24/test/test_ocp_imagestream_s2i.py
  • 1.24/test/test_ocp_imagestreams.py
  • 1.26/test/perl-test-app/nginx.conf
  • 1.24/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/imagestreams
  • 1.26/test/perl-test-app/index.html
  • 1.26/test/examples
  • 1.20/test/test_ocp_local_example.py
  • 1.20/test/test_container_application.py
  • 1.20/test/run-openshift-remote-cluster
  • 1.24/test/run-openshift-remote-cluster
  • 1.26/test/test_ocp_shared_helm_template.py
  • 1.26/test/start-hook-test-app/index2.html
  • 1.24/test/imagestreams
  • 1.24/test/run
  • 1.26/test/run-pytest
  • 1.20/Dockerfile.fedora
  • 1.20/test/test_ocp_template_example_app.py
  • 1.22/test/test_ocp_shared_helm_imagestreams.py
  • 1.20/test/test_container_sizes.py
  • 1.20/test/conftest.py
  • 1.26/test/test_ocp_remote_example.py
  • 1.22/test/test_ocp_template_example_app.py
  • 1.20/test/test_ocp_shared_helm_template.py
  • 1.20/test/test-openshift.yaml
  • 1.26/test/init.py
  • 1.26/test/test_ocp_template_example_app.py
  • 1.22/test/test_container_basics.py
  • 1.24/test/test_ocp_remote_example.py
  • 1.20/test/init.py
  • 1.22/test/perl-test-app/nginx.conf
  • 1.24/test/run-openshift-pytest
  • 1.24/test/init.py
  • 1.22/test/start-hook-test-app/index.html
  • 1.20/test/test-lib.sh
  • 1.22/test/imagestreams
  • 1.26/test/test-lib-nginx.sh
  • 1.26/test/test-app
  • 1.26/test/test-openshift.yaml
  • 1.26/test/test_container_sizes.py
  • 1.24/test/test_ocp_shared_helm_template.py
  • 1.20/test/test_ocp_remote_example.py
  • 1.26/test/test-lib-openshift.sh
  • 1.22/test/run-openshift-pytest
  • 1.24/test/test_ocp_template_example_app.py
  • 1.24/test/examples
  • 1.26/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/start-hook-test-app/index.html
  • 1.22/test/perl-test-app/nginx-perl/Version.pm
  • 1.26/test/conftest.py
  • 1.24/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test_ocp_imagestream_s2i.py
  • 1.24/test/run-pytest
  • 1.22/test/run-openshift-remote-cluster
  • 1.24/test/start-hook-test-app/index2.html
  • 1.24/test/perl-test-app/nginx.conf
  • 1.24/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/perl-test-app/index.html
  • 1.22/test/run
  • 1.22/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.26/test/test_container_example_apps.py
  • 1.26/test/test_ocp_imagestream_s2i.py
  • 1.22/test/start-hook-test-app/index2.html
  • 1.26/test/run
  • 1.22/Dockerfile.rhel9
  • 1.24/test/start-hook-test-app/index.html
  • 1.20/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_application.py
  • 1.22/test/run-pytest
  • 1.22/test/test_container_sizes.py
  • 1.24/test/conftest.py
  • 1.24/test/test-lib.sh
  • 1.26/test/start-hook-test-app/nginx-cfg/default.conf
  • 1.22/test/test-lib-openshift.sh
  • 1.20/test/test-lib-nginx.sh
  • 1.26/test/perl-test-app/nginx-perl/Version.pm
  • 1.20/test/test-app
  • 1.22/test/start-hook-test-app/nginx-start/init.sh
  • 1.20/test/run
  • 1.26/test/test_ocp_imagestreams.py
  • 1.24/test/test_container_example_apps.py
  • 1.20/test/test-lib-remote-openshift.sh
  • 1.20/test/constants.py
  • 1.22/Dockerfile.fedora
  • 1.22/test/test_ocp_local_example.py
  • 1.22/test/test_ocp_remote_example.py
  • 1.20/test/test-lib-openshift.sh
  • 1.20/test/run-openshift-pytest
  • 1.26/test/test_container_basics.py
  • 1.24/test/perl-test-app/index.html
  • 1.20/test/test_container_example_apps.py
  • 1.22/test/test-app
  • 1.24/test/start-hook-test-app/nginx-start/init.sh
  • 1.26/test/test-lib-remote-openshift.sh
  • 1.24/test/constants.py
  • 1.26/Dockerfile.rhel8
  • 1.20/test/run-pytest
  • 1.20/test/test_container_basics.py
  • 1.22/test/test_ocp_shared_helm_template.py
  • 1.22/test/test_container_application.py
  • 1.22/test/test_container_example_apps.py
  • 1.22/test/test-openshift.yaml
  • 1.26/test/test_container_application.py
  • 1.26/test/test_ocp_local_example.py
  • 1.26/test/run-openshift-remote-cluster
  • 1.22/test/test_ocp_imagestreams.py
  • 1.26/test/test-lib.sh
  • 1.22/test/conftest.py
  • 1.22/test/init.py
  • 1.22/test/examples
  • 1.22/Dockerfile.c9s
  • 1.24/test/test-app
  • 1.20/Dockerfile.c9s
  • 1.26/test/imagestreams
  • 1.22/test/test-lib-remote-openshift.sh
  • 1.22/test/test_ocp_imagestream_s2i.py
  • 1.22/test/test-lib.sh
  • 1.22-micro/Dockerfile.rhel8
🛑 Comments failed to post (10)
.github/workflows/container-tests.yml (1)

7-8: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- .github/workflows/container-tests.yml ---'
cat -n .github/workflows/container-tests.yml

echo
echo '--- workflows referencing distgen-check or permissions ---'
rg -n --hidden --glob '.github/workflows/*.yml' --glob '.github/workflows/*.yaml' 'distgen-check|permissions:' .github/workflows || true

echo
echo '--- top-level GitHub Actions files ---'
git ls-files '.github/workflows/*'

Repository: sclorg/nginx-container

Length of output: 1652


🏁 Script executed:

#!/bin/bash
set -euo pipefail

for f in .github/workflows/pr-metadata.yml .github/workflows/auto-merge.yml .github/workflows/auto-merge-on-demand.yml .github/workflows/build-and-push.yml; do
  echo "=== $f ==="
  cat -n "$f"
  echo
done

Repository: sclorg/nginx-container

Length of output: 8556


🌐 Web query:

sclorg/ci-actions distgen-check.yml permissions GITHUB_TOKEN reusable workflow

💡 Result:

The distgen-check.yml file in the sclorg/ci-actions repository is a reusable workflow commonly integrated into SCLOrg container repositories [1][2][3][4][5]. When utilizing this or any reusable workflow in GitHub Actions, the management of the GITHUB_TOKEN and its permissions is governed by standard GitHub Actions security and configuration rules [6][7]: 1. Default Permissions: If you do not explicitly define a permissions block for the job calling the reusable workflow, the called workflow inherits the default GITHUB_TOKEN permissions [6][7]. 2. Permission Constraints: The GITHUB_TOKEN permissions passed from the caller to the reusable workflow can be downgraded, but they cannot be elevated [6][8][7]. This means you can restrict the token's capabilities in your calling job, but you cannot grant it broader permissions than what it already possesses [6][7]. 3. Configuration: As a security best practice, you should define the minimum required permissions at the job level in your calling workflow file (e.g.,.github/workflows/container-tests.yml) [9]. Example configuration for a calling job: jobs: distgen-check: permissions: contents: read uses: sclorg/ci-actions/.github/workflows/distgen-check.yml@main If the workflow requires more than the default permissions to perform its tasks, ensure the calling job explicitly grants those specific permissions (e.g., contents: read) [9]. The reusable workflow will automatically have access to the GITHUB_TOKEN provided by the caller [6][7].

Citations:


Pin the shared reusable workflows and set explicit token permissions in .github/workflows/container-tests.yml. @main leaves these jobs open to upstream changes; use reviewed commit SHAs for the sclorg/ci-actions workflows here and add a minimal permissions block instead of inheriting defaults.

🧰 Tools
🪛 zizmor (1.26.1)

[warning] 7-8: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/container-tests.yml around lines 7 - 8, Update the
distgen-check reusable workflow reference to use a reviewed immutable commit SHA
instead of `@main`, and add an explicit minimal permissions block in the workflow
configuration so jobs do not inherit default token permissions. Apply this
consistently to the sclorg/ci-actions reusable workflows in container-tests.yml.

Source: Linters/SAST tools

1.20/README.md (1)

202-204: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Restore the RHEL9 Dockerfile reference.

1.20/Dockerfile.rhel9 exists, but the updated list omits Dockerfile.rhel9 while advertising other variants. Keep this list synchronized with the generated outputs.

Proposed fix
-for RHEL8 it's `Dockerfile.rhel8`, Dockerfile for RHEL10 is called `Dockerfile.rhel10`,
+for RHEL8 it's `Dockerfile.rhel8`, Dockerfile for RHEL9 is called `Dockerfile.rhel9`,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@1.20/README.md` around lines 202 - 204, Update the Dockerfile variant list in
the README to include Dockerfile.rhel9 alongside the existing RHEL, CentOS
Stream, and Fedora entries, keeping the documented list synchronized with the
generated Dockerfile outputs.
1.22-micro/README.md (2)

1-4: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the generated description wording.

Use “reverse proxy server” and “Fedora-based” in this user-facing text.

Proposed fix
-This container image includes Nginx 1.22 server and a reverse server for OpenShift and general usage.
-Users can choose between RHEL, CentOS Stream and Fedora based images.
+This container image includes Nginx 1.22 server and a reverse proxy server for OpenShift and general usage.
+Users can choose between RHEL, CentOS Stream and Fedora-based images.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Nginx 1.22 server and a reverse proxy server container image
============================================================
This container image includes Nginx 1.22 server and a reverse proxy server for OpenShift and general usage.
Users can choose between RHEL, CentOS Stream and Fedora-based images.
🧰 Tools
🪛 LanguageTool

[grammar] ~4-~4: Use a hyphen to join words.
Context: ...e between RHEL, CentOS Stream and Fedora based images. The RHEL images are availa...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@1.22-micro/README.md` around lines 1 - 4, Update the README description to
use the exact user-facing terms “reverse proxy server” and “Fedora-based,”
correcting the current “reverse server” and “Fedora based” wording while
preserving the surrounding content.

Source: Linters/SAST tools


68-69: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Do not document Perl modules unless the micro image supports them.

1.22-micro/Dockerfile.c9s does not install the nginx Perl module or define NGINX_PERL_MODULE_PATH, so this documented ./nginx-perl/*.pm payload cannot be installed. Remove the entry or add the required package and environment support.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@1.22-micro/README.md` around lines 68 - 69, Remove the ./nginx-perl/*.pm
documentation entry from 1.22-micro/README.md, since Dockerfile.c9s does not
install or configure Perl module support; do not document payloads unavailable
in the micro image.
README.md (1)

83-83: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the configured setext heading style.

This added ATX heading triggers markdownlint MD003.

Proposed fix
-## Contributing Guidelines
+Contributing Guidelines
+----------------------
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Contributing Guidelines
----------------------
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 83-83: Heading style
Expected: setext; Actual: atx

(MD003, heading-style)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 83, Update the “Contributing Guidelines” heading in
README.md to use the repository’s configured setext heading style instead of ATX
syntax, preserving the existing heading text.

Source: Linters/SAST tools

src/README.md (2)

25-30: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update the stale test-app paths.

The repository layout used by src/s2i/bin/usage is {{ spec.version }}/test/test-app, not examples/{{ spec.version }}/test-app; both the link and cd command currently lead users to a nonexistent location.

Proposed fix
- To build a simple [test-app](https://github.com/sclorg/nginx-container/tree/master/examples/{{ spec.version }}/test-app) application in Openshift:
+ To build a simple [test-app](https://github.com/sclorg/nginx-container/tree/master/{{ spec.version }}/test/test-app) application in Openshift:
...
- cd nginx-container/examples/{{ spec.version }}/
+ cd nginx-container/{{ spec.version }}/test/

Also applies to: 90-95

🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 28-28: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/README.md` around lines 25 - 30, Update the test-app repository
references in the README example to use {{ spec.version }}/test/test-app
consistently, including the GitHub link and the related cd command, while
preserving the existing oc new-app context directory.

199-204: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Correct the stale Python reference.

This is Nginx documentation, but it says “Python environment Dockerfiles.” Replace it with Nginx image wording.

🧰 Tools
🪛 LanguageTool

[grammar] ~201-~201: Ensure spelling is correct
Context: ...r. In that repository you also can find another versions of Python environment Dockerfi...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/README.md` around lines 199 - 204, Update the documentation sentence near
the container image Dockerfile references to replace “Python environment
Dockerfiles” with wording that correctly describes Nginx image Dockerfiles.
Preserve the listed repository, platform names, and Dockerfile filenames
unchanged.

Source: Linters/SAST tools

test/perl-test-app/index.html (1)

1-1: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add the HTML5 doctype to all fixtures.

HTMLHint reports standards-mode violations in each page. Prepend <!DOCTYPE html> at Line 1 of every listed file.

🧰 Tools
🪛 HTMLHint (1.9.2)

[error] 1-1: Doctype must be declared before any non-comment content.

(doctype-first)

📍 Affects 3 files
  • test/perl-test-app/index.html#L1-L1 (this comment)
  • test/start-hook-test-app/index.html#L1-L1
  • test/start-hook-test-app/index2.html#L1-L1
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/perl-test-app/index.html` at line 1, Add the HTML5 doctype as the first
line of test/perl-test-app/index.html, test/start-hook-test-app/index.html, and
test/start-hook-test-app/index2.html, before each existing html element.

Source: Linters/SAST tools

test/perl-test-app/nginx.conf (1)

59-64: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the 404 target and location match.

error_page 404 /404.html redirects to /404.html, but the only exact location is /40x.html; that location is never selected for these 404 responses. Use the same URI in both directives.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/perl-test-app/nginx.conf` around lines 59 - 64, Update the 404
error_page directive and its adjacent exact-match location so both use the same
URI, ensuring 404 responses select that location; leave the existing 500–504
error handling unchanged.
test/start-hook-test-app/nginx-start/init.sh (1)

17-19: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align the selected index with the integration test.

This startup hook selects index2.html, whose body says “NGINX2 is working”, but test/test_container_example_apps.py expects “NGINX is working”. Update the expected output or select index.html; otherwise the integration contract is broken.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/start-hook-test-app/nginx-start/init.sh` around lines 17 - 19, Align the
startup hook’s INDEX_FILE assignment with the integration test contract by
selecting index.html, or update the test expectation to match index2.html’s
“NGINX2 is working” content. Keep the hook and test consistent so the expected
response matches the selected index file.

@ndavidova
ndavidova requested a review from frenzymadness July 23, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants