No description
  • Shell 61.6%
  • Dockerfile 33%
  • Makefile 4.9%
  • HTML 0.5%
Find a file
2026-06-08 21:58:13 +03:00
compat Release NiceOS NGINX 1.31.1-niceos13-r1 2026-06-08 18:45:42 +03:00
docs Update nginx image metadata for 1.31.1-niceos13-r1 2026-06-08 21:58:13 +03:00
rootfs Fix 2026-06-08 21:02:12 +03:00
tests Fix 2026-06-08 21:02:12 +03:00
.dockerignore Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
.gitignore Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
.niceos-source.yaml Update nginx image metadata for 1.31.1-niceos13-r1 2026-06-08 21:58:13 +03:00
catalog.fragment.yaml Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
CHANGELOG.md Update nginx image metadata for 1.31.1-niceos13-r1 2026-06-08 21:58:13 +03:00
docker-compose.yml Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
Dockerfile Release NiceOS NGINX 1.31.1-niceos13-r1 2026-06-08 21:02:45 +03:00
LICENSE Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
Makefile Initial NiceOS NGINX application container 2026-06-08 18:25:23 +03:00
README.md Update nginx image metadata for 1.31.1-niceos13-r1 2026-06-08 21:58:13 +03:00
RELEASE.yaml Update nginx image metadata for 1.31.1-niceos13-r1 2026-06-08 21:58:13 +03:00

NiceOS NGINX Container

A NiceOS.Container based NGINX Open Source image with a Bitnami-compatible runtime contract for migration from historical bitnami/nginx workflows and charts.

docker.io/niceos/nginx is an NGINX application container built on the NiceOS.Container RPM/glibc stream. It keeps the operational layout expected by Bitnami-style images while replacing Debian/minideb/apt/Stacksmith internals with NiceOS RPM packages and a reproducible NiceOS root filesystem.

This image is not an official Bitnami image and is not endorsed by Bitnami, Broadcom, VMware, F5, NGINX, or the NGINX project. It is a NiceSOFT/NiceOS compatibility target intended to help users migrate existing automation, Helm charts, CI jobs, and container workflows that expect the historical Bitnami runtime contract.


TL;DR

docker run --rm -p 8080:8080 docker.io/niceos/nginx:1.31.1-niceos13-r1

Run a shell:

docker run --rm -it docker.io/niceos/nginx:1.31.1-niceos13-r1 /bin/bash

Serve a static directory:

docker run --rm -p 8080:8080   -v "$PWD/site:/app:ro"   docker.io/niceos/nginx:1.31.1-niceos13-r1

Run with a custom server block:

docker run --rm -p 8080:8080   -v "$PWD/my_server_block.conf:/opt/bitnami/nginx/conf/server_blocks/my_server_block.conf:ro"   docker.io/niceos/nginx:1.31.1-niceos13-r1

Run as arbitrary UID with read-only root filesystem:

docker run --rm   --user 12345:0   --cap-drop ALL   --security-opt no-new-privileges   --read-only   --tmpfs /tmp:rw,exec,nosuid,nodev   --tmpfs /var/tmp:rw,exec,nosuid,nodev   --tmpfs /run:rw,nosuid,nodev   -p 8080:8080   docker.io/niceos/nginx:1.31.1-niceos13-r1

Compatibility goal

The goal is not to copy Bitnami internals. The goal is to preserve the runtime contract that existing deployments commonly depend on:

Contract area NiceOS status
/opt/bitnami root preserved
/opt/bitnami/nginx preserved
/opt/bitnami/nginx/sbin/nginx preserved as compatibility command path
/opt/bitnami/nginx/conf preserved
/opt/bitnami/nginx/conf.default preserved
/opt/bitnami/nginx/conf/server_blocks preserved
/opt/bitnami/nginx/conf/context.d/* preserved
/opt/bitnami/nginx/conf/stream_server_blocks preserved
/opt/bitnami/scripts/nginx/entrypoint.sh preserved
/opt/bitnami/scripts/nginx/setup.sh preserved
/opt/bitnami/scripts/nginx/run.sh preserved
/app static content directory preserved
/bitnami/nginx persistence path preserved
default user 1001 preserved
exposed ports 8080 and 8443 preserved
NGINX_* environment variables preserved where relevant
package manager in final image removed
Debian/minideb/apt/Stacksmith replaced by NiceOS/RPM

Image tags

Immutable tag:

docker.io/niceos/nginx:1.31.1-niceos13-r1
ghcr.io/niceos-containers/nginx:1.31.1-niceos13-r1

Version tag:

docker.io/niceos/nginx:1.31.1
ghcr.io/niceos-containers/nginx:1.31.1

Convenience channel:

docker.io/niceos/nginx:latest
ghcr.io/niceos-containers/nginx:latest

For production, prefer immutable tags or digest-pinned references.


Included software

Component Version/source
NiceOS.Container 13 RPM stream
NGINX 1.31.1 from NiceOS nginx RPM
nss_wrapper NiceOS RPM, exposed through /opt/bitnami/common/lib/libnss_wrapper.so
render-template NiceOS compatibility RPM, exposed through /opt/bitnami/common/bin/render-template
CA certificates/OpenSSL NiceOS RPMs

Runtime layout

/opt/bitnami
/opt/bitnami/nginx
/opt/bitnami/nginx/sbin/nginx
/opt/bitnami/nginx/conf/nginx.conf
/opt/bitnami/nginx/conf.default/nginx.conf
/opt/bitnami/nginx/conf/server_blocks/default.conf
/opt/bitnami/nginx/conf/context.d/main
/opt/bitnami/nginx/conf/context.d/events
/opt/bitnami/nginx/conf/context.d/http
/opt/bitnami/nginx/conf/stream_server_blocks
/opt/bitnami/nginx/logs/access.log -> /dev/stdout
/opt/bitnami/nginx/logs/error.log  -> /dev/stderr
/opt/bitnami/scripts/nginx/entrypoint.sh
/opt/bitnami/scripts/nginx/setup.sh
/opt/bitnami/scripts/nginx/run.sh
/app
/bitnami/nginx

Environment variables

Variable Default Purpose
APP_VERSION 1.31.1 NGINX version marker
IMAGE_REVISION 1 NiceOS image revision
BITNAMI_APP_NAME nginx Bitnami-style app identifier
BITNAMI_ROOT_DIR /opt/bitnami Bitnami-style root
BITNAMI_VOLUME_DIR /bitnami Bitnami-style volume root
NGINX_HTTP_PORT_NUMBER 8080 HTTP listen port for generated/default config
NGINX_HTTPS_PORT_NUMBER 8443 HTTPS listen port for generated/default config
NGINX_WORKER_PROCESSES auto Worker process setting
NGINX_ENABLE_STREAM no Enable stream context rendering when modules support it
NGINX_ENABLE_ABSOLUTE_REDIRECT no Render absolute redirects in default/server block helpers
NGINX_ENABLE_PORT_IN_REDIRECT no Include container listen port in redirects
NSS_WRAPPER_LIB /opt/bitnami/common/lib/libnss_wrapper.so arbitrary UID support

Building

podman build --format docker --no-cache   --build-arg NICEOS_VERSION=13   --build-arg APP_VERSION=1.31.1   --build-arg IMAGE_REVISION=1   -t docker.io/niceos/nginx:1.31.1-niceos13-r1   -t docker.io/niceos/nginx:1.31.1   -t docker.io/niceos/nginx:latest .

Or:

make build

Testing

./tests/smoke.sh docker.io/niceos/nginx:1.31.1-niceos13-r1
./tests/bitnami-contract-smoke.sh docker.io/niceos/nginx:1.31.1-niceos13-r1
./tests/local-compat-suite.sh docker.io/niceos/nginx:1.31.1-niceos13-r1

The tests check command paths, environment variables, non-root behavior, arbitrary UID behavior, read-only rootfs behavior, HTTP serving, NGINX config syntax, forbidden package-manager/build-tool absence, and the Bitnami-style runtime layout.


Release automation

./scripts/niceos_app_release_nginx.py release 1.31.1   --revision 1   --niceos-version 13   --app-repo /DATA2/niceos-containers/app-nginx   --monorepo /DATA2/github/niceos-containers/containers   -y

Metadata-only monorepo refresh:

./scripts/niceos_app_release_nginx.py update 1.31.1   --revision 1   --niceos-version 13   --refresh-monorepo-only   -y

Repository layout

.
├── compat
│   ├── bitnami-reference.txt
│   └── contract.yaml
├── docs
│   ├── BUILDING.md
│   ├── HELM_COMPAT.md
│   └── releases
│       └── 1.31.1-niceos13-r1.md
├── rootfs
│   ├── app
│   │   └── index.html
│   ├── etc
│   │   └── profile.d
│   │       └── 00-bitnami-nginx-path.sh
│   └── opt
│       └── bitnami
│           ├── nginx
│           │   └── conf.default
│           │       ├── nginx.conf
│           │       └── server_blocks/default.conf
│           └── scripts
│               ├── libnginx.sh
│               ├── nginx-env.sh
│               └── nginx
│                   ├── bitnami-templates/default-https-server-block.conf
│                   ├── entrypoint.sh
│                   ├── postunpack.sh
│                   ├── run.sh
│                   └── setup.sh
├── scripts
│   └── niceos_app_release_nginx.py
└── tests
    ├── bitnami-contract-smoke.sh
    ├── compare-with-bitnami.sh
    ├── local-compat-suite.sh
    └── smoke.sh

Registries

Docker Hub:

docker.io/niceos/nginx:1.31.1-niceos13-r1
docker.io/niceos/nginx:1.31.1
docker.io/niceos/nginx:latest

GitHub Container Registry:

ghcr.io/niceos-containers/nginx:1.31.1-niceos13-r1
ghcr.io/niceos-containers/nginx:1.31.1
ghcr.io/niceos-containers/nginx:latest

Digests:

  • Docker Hub immutable digest: docker.io/niceos/nginx@sha256:427debcf5802bbca860409681429a91ece24f91f35e0c11252ab67bd29f3358f
  • GHCR immutable digest: ghcr.io/niceos-containers/nginx@sha256:427debcf5802bbca860409681429a91ece24f91f35e0c11252ab67bd29f3358f