diff --git a/.github/workflows/build-and-push.yml b/.github/workflows/build-and-push.yml index 9f22d978..2baf6354 100644 --- a/.github/workflows/build-and-push.yml +++ b/.github/workflows/build-and-push.yml @@ -53,6 +53,14 @@ jobs: quayio_token: "QUAY_IMAGE_SCLORG_BUILDER_TOKEN" image_name: "nginx-124-c9s" + - version: "1.26" + tag: "c10s" + dockerfile: "Dockerfile.c10s" + registry_namespace: "sclorg" + quayio_username: "QUAY_IMAGE_SCLORG_BUILDER_USERNAME" + quayio_token: "QUAY_IMAGE_SCLORG_BUILDER_TOKEN" + image_name: "nginx-126-c10s" + steps: - name: Build and push to quay.io registry uses: sclorg/build-and-push-action@main diff --git a/1.26/Dockerfile.c10s b/1.26/Dockerfile.c10s new file mode 100644 index 00000000..989a5150 --- /dev/null +++ b/1.26/Dockerfile.c10s @@ -0,0 +1,88 @@ +FROM quay.io/sclorg/s2i-core-c10s:c10s + +EXPOSE 8080 +EXPOSE 8443 + +ENV NAME=nginx \ + NGINX_VERSION=1.26 \ + NGINX_SHORT_VER=126 \ + VERSION=0 + +ENV SUMMARY="Platform for running nginx $NGINX_VERSION or building nginx-based application" \ + DESCRIPTION="Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP \ +protocols, with a strong focus on high concurrency, performance and low memory usage. The container \ +image provides a containerized packaging of the nginx $NGINX_VERSION daemon. The image can be used \ +as a base image for other applications based on nginx $NGINX_VERSION web server. \ +Nginx server image can be extended using source-to-image tool." + +LABEL summary="${SUMMARY}" \ + description="${DESCRIPTION}" \ + io.k8s.description="${DESCRIPTION}" \ + io.k8s.display-name="Nginx ${NGINX_VERSION}" \ + io.openshift.expose-services="8080:http" \ + io.openshift.expose-services="8443:https" \ + io.openshift.tags="builder,${NAME},${NAME}-${NGINX_SHORT_VER}" \ + com.redhat.component="${NAME}-${NGINX_SHORT_VER}-container" \ + name="sclorg/${NAME}-${NGINX_SHORT_VER}-c10s" \ + version="1" \ + com.redhat.license_terms="https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI" \ + maintainer="SoftwareCollections.org " \ + help="For more information visit https://github.com/sclorg/${NAME}-container" \ + usage="s2i build quay.io/sclorg/${NAME}-${NGINX_SHORT_VER}-c10s:latest " + +ENV NGINX_CONFIGURATION_PATH=${APP_ROOT}/etc/nginx.d \ + NGINX_CONF_PATH=/etc/nginx/nginx.conf \ + NGINX_DEFAULT_CONF_PATH=${APP_ROOT}/etc/nginx.default.d \ + NGINX_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/nginx \ + NGINX_APP_ROOT=${APP_ROOT} \ + NGINX_LOG_PATH=/var/log/nginx \ + NGINX_PERL_MODULE_PATH=${APP_ROOT}/etc/perl + +# Modules does not exist +RUN INSTALL_PKGS="nss_wrapper bind-utils gettext hostname nginx nginx-mod-stream nginx-mod-http-perl" && \ + dnf install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ + rpm -V $INSTALL_PKGS && \ + nginx -v 2>&1 | grep -qe "nginx/$NGINX_VERSION\." && echo "Found VERSION $NGINX_VERSION" && \ + dnf -y clean all --enablerepo='*' + +# Copy the S2I scripts from the specific language image to $STI_SCRIPTS_PATH +COPY $NGINX_VERSION/s2i/bin/ $STI_SCRIPTS_PATH + +# Copy extra files to the image. +COPY $NGINX_VERSION/root/ / + +# Changing ownership and user rights to support following use-cases: +# 1) running container on OpenShift, whose default security model +# is to run the container under random UID, but GID=0 +# 2) for working root-less container with UID=1001, which does not have +# to have GID=0 +# 3) for default use-case, that is running container directly on operating system, +# with default UID and GID (1001:0) +# Supported combinations of UID:GID are thus following: +# UID=1001 && GID=0 +# UID=&& GID=0 +# UID=1001 && GID= +RUN sed -i -f ${NGINX_APP_ROOT}/nginxconf.sed ${NGINX_CONF_PATH} && \ + mkdir -p ${NGINX_APP_ROOT}/etc/nginx.d/ && \ + mkdir -p ${NGINX_APP_ROOT}/etc/nginx.default.d/ && \ + mkdir -p ${NGINX_APP_ROOT}/src/nginx-start/ && \ + mkdir -p ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ + mkdir -p ${NGINX_LOG_PATH} && \ + mkdir -p ${NGINX_PERL_MODULE_PATH} && \ + chown -R 1001:0 ${NGINX_CONF_PATH} && \ + chown -R 1001:0 ${NGINX_APP_ROOT}/etc && \ + chown -R 1001:0 ${NGINX_APP_ROOT}/src/nginx-start/ && \ + chown -R 1001:0 ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ + chown -R 1001:0 /var/lib/nginx /var/log/nginx /run && \ + chmod ug+rw ${NGINX_CONF_PATH} && \ + chmod -R ug+rwX ${NGINX_APP_ROOT}/etc && \ + chmod -R ug+rwX ${NGINX_APP_ROOT}/src/nginx-start/ && \ + chmod -R ug+rwX ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ + chmod -R ug+rwX /var/lib/nginx /var/log/nginx /run && \ + rpm-file-permissions + +USER 1001 + +STOPSIGNAL SIGQUIT + +CMD $STI_SCRIPTS_PATH/usage diff --git a/1.26/Dockerfile.fedora b/1.26/Dockerfile.fedora index fa4f2a7a..dbad289b 100644 --- a/1.26/Dockerfile.fedora +++ b/1.26/Dockerfile.fedora @@ -1,9 +1,5 @@ FROM quay.io/fedora/s2i-core:40 -# nginx 1.26 image. -# -# Volumes: -# * /var/log/nginx/ - Storage for logs EXPOSE 8080 EXPOSE 8443 @@ -27,8 +23,8 @@ LABEL summary="${SUMMARY}" \ io.k8s.display-name="Nginx ${NGINX_VERSION}" \ io.openshift.expose-services="8080:http" \ io.openshift.expose-services="8443:https" \ - io.openshift.tags="builder,${NAME},${NAME}${NGINX_SHORT_VER}" \ - com.redhat.component="${NAME}" \ + io.openshift.tags="builder,${NAME},${NAME}-${NGINX_SHORT_VER}" \ + com.redhat.component="${NAME}-${NGINX_SHORT_VER}" \ name="fedora/${NAME}-${NGINX_SHORT_VER}" \ version="${VERSION}" \ maintainer="SoftwareCollections.org " \ diff --git a/1.26/README.md b/1.26/README.md index 47a6cb04..829edfb0 100644 --- a/1.26/README.md +++ b/1.26/README.md @@ -199,5 +199,6 @@ See also Dockerfile and other sources for this container image are available on https://github.com/sclorg/nginx-container. In that repository you also can find another versions of Python environment Dockerfiles. -for RHEL8 it's `Dockerfile.rhel8`, Dockerfile for CentOS Stream 9 is called `Dockerfile.c9s`, and the Fedora Dockerfile is called `Dockerfile.fedora`. +for RHEL8 it's `Dockerfile.rhel8`, Dockerfile for CentOS Stream 9 is called `Dockerfile.c9s`, +Dockerfile for CentOS Stream 10 is called `Dockerfile.c10s`, and the Fedora Dockerfile is called `Dockerfile.fedora`. diff --git a/README.md b/README.md index b540b7a7..74fe0847 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ Nginx container images Images available on Quay are: * CentOS Stream 9 [nginx-1.20](https://quay.io/repository/sclorg/nginx-120-c9s) +* CentOS Stream 9 [nginx-1.24](https://quay.io/repository/sclorg/nginx-124-c9s) +* CentOS Stream 10 [nginx-1.26](https://quay.io/repository/sclorg/nginx-126-c10s) * Fedora [nginx-1.20](https://quay.io/repository/fedora/nginx-120) * Fedora [nginx-1.22](https://quay.io/repository/fedora/nginx-122) * Fedora [nginx-1.24](https://quay.io/repository/fedora/nginx-124) @@ -37,6 +39,7 @@ RHEL versions currently supported are: CentOS Stream versions currently supported are: * CentOS Stream 9 +* CentOS Stream 10 Installation