@@ -6,43 +6,61 @@ ADD --link --chown=101:1001 https://nginx.org/keys/nginx_signing.key nginx_signi
66ADD --link --chown=101 :1001 build/ubi/repos/nginx.repo nginx.repo
77ADD --link --chown=101 :1001 build/ubi/repos/agent.repo agent.repo
88
9+ FROM ghcr.io/nginx/dependencies/nginx-ubi:ubi9@sha256:01a32246761b9bbe47a6a29bcd8ca6e9b6e331b3bdfa372d8987b622276f7025 AS packages
10+
911FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
10- # FROM ghcr.io/nginx/dependencies/nginx-ubi:ubi9
1112
1213# renovate: datasource=github-tags depName=nginx/agent
1314ARG NGINX_AGENT_VERSION=v3.3.1
1415ARG NJS_DIR
1516ARG NGINX_CONF_DIR
1617ARG BUILD_AGENT
1718
18- # c-ares is required by for nginx-module-otel. It is not available in ubi9-minimal by default
19+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
20+ # Prepare packages
1921RUN --mount=type=bind,from=nginx-files,src=nginx.repo,target=/etc/yum.repos.d/nginx.repo \
2022 --mount=type=bind,from=nginx-files,src=agent.repo,target=/etc/yum.repos.d/agent.repo \
2123 --mount=type=bind,from=nginx-files,src=nginx_signing.key,target=/tmp/nginx_signing.key \
24+ --mount=type=bind,from=packages,src=/,target=/ubi-bin/ \
2225 rpm --import /tmp/nginx_signing.key \
2326 && microdnf update -y \
2427 && microdnf --nodocs install -y shadow-utils subscription-manager \
25- # microdnf --enablerepo=appstream install -y c-ares \
28+ && rpm -qa --queryformat "%{NAME}\n " | sort > pkgs-installed \
29+ && microdnf --nodocs --setopt=install_weak_deps=0 install -y diffutils dnf \
30+ && rpm -qa --queryformat "%{NAME}\n " | sort > pkgs-new \
31+ && dnf install -y /ubi-bin/*.rpm \
32+ && dnf -q repoquery --resolve --requires --recursive --whatrequires nginx --queryformat "%{NAME}" > pkgs-nginx \
33+ && dnf --setopt=protected_packages= remove -y $( comm -13 pkgs-installed pkgs-new | comm -13 pkgs-nginx -) \
34+ && rm pkgs-installed pkgs-new pkgs-nginx \
2635 && microdnf --nodocs install -y nginx \
2736 && microdnf --nodocs install -y nginx-module-njs nginx-module-image-filter nginx-module-xslt \
28- && microdnf --nodocs install -y nginx-agent-${ NGINX_AGENT_VERSION#v} * \
29- && microdnf clean all
37+ # && microdnf --enablerepo=appstream install -y c-ares \
38+ && microdnf --nodocs install -y nginx-agent-${ NGINX_AGENT_VERSION#v}
39+
40+ # RUN rm /etc/yum.repos.d/nginx.repo \
41+ # && rm /etc/yum.repos.d/agent.repo \
42+ # && microdnf clean all
3043
44+ # Configure logs and directories
3145RUN mkdir -p /usr/lib/nginx/modules \
32- # forward request and error logs to docker log collector
46+ && mkdir -p /usr/lib64/nginx/modules \
47+ && mkdir -p /var/run/nginx \
3348 && ln -sf /dev/stdout /var/log/nginx/access.log \
34- && ln -sf /dev/stderr /var/log/nginx/error.log
49+ && ln -sf /dev/stderr /var/log/nginx/error.log \
50+ && cp -r /usr/lib64/nginx/modules/ngx_* /usr/lib/nginx/modules/
51+ # && ln -sf /usr/lib64/nginx/modules/ngx_http_js_module.so /usr/lib/nginx/modules/ngx_http_js_module.so \
52+ # && ln -sf /usr/lib64/nginx/modules/ngx_stream_js_module.so /usr/lib/nginx/modules/ngx_stream_js_module.so
3553
3654COPY build/entrypoint.sh /agent/entrypoint.sh
3755COPY ${ NJS_DIR} /httpmatches.js /usr/lib/nginx/modules/njs/httpmatches.js
3856COPY ${ NGINX_CONF_DIR} /nginx.conf /etc/nginx/nginx.conf
3957COPY ${ NGINX_CONF_DIR} /grpc-error-locations.conf /etc/nginx/grpc-error-locations.conf
4058COPY ${ NGINX_CONF_DIR} /grpc-error-pages.conf /etc/nginx/grpc-error-pages.conf
4159
42- RUN chown -R 101 :1001 /etc/nginx /var/cache/nginx
60+ RUN chown -R 101 :1001 /etc/nginx /var/cache/nginx /var/run/nginx /etc/nginx-agent/nginx-agent.conf
4361
4462LABEL org.nginx.ngf.image.build.agent="${BUILD_AGENT}"
4563
4664USER 101 :1001
4765
48- ENTRYPOINT ["/agent/entrypoint.sh" ]
66+ ENTRYPOINT ["/agent/entrypoint.sh" ]
0 commit comments