Skip to content

nginx is not compatible to upstream module package from alpine (nginx-mod-http-headers-more) #104

@sagiru

Description

@sagiru

Description

Hi,

we have the requirement to use the module nginx-mod-http-headers-more in our docker images. If we use the nginx-unprivileged:1.22.0-alpine or the nginx-unprivileged:1.23.1-alpine and add the module we got two different error but it does not work with any of them.

If we use 1.22.0 and add the both lines in any dockerfile from below we got the following error:

sascha@marge: $ docker run nginx-sidecar:latest
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/09/09 13:27:28 [emerg] 1#1: module "/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so" is not binary compatible in /etc/nginx/nginx.conf:1
nginx: [emerg] module "/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so" is not binary compatible in /etc/nginx/nginx.conf:1

If we use 1.23.1 and add the both lines in any dockerfile from below we got the following, slightly different error:

sascha@marge: $ docker run nginx-sidecar:latest
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/watcher-launcher.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/09/09 13:08:57 [emerg] 1#1: module "/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so" version 1022000 instead of 1023001 in /etc/nginx/nginx.conf:1
nginx: [emerg] module "/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so" version 1022000 instead of 1023001 in /etc/nginx/nginx.conf:1

To reproduce

Use the following dockerfile and do a docker build. After a docker run you will get the errors.

FROM docker-proxy.central.aws.aok-systems.de/nginxinc/nginx-unprivileged:1.23.1-alpine

USER root

RUN apk add --no-cache nginx-mod-http-headers-more
RUN echo "load_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;" > /etc/nginx/nginx.conf

USER nginx

Your environment

  • Version of Docker
  • Version of the NGINX Unprivileged Docker image
    • 1.22.0-alpine
    • 1.23.1-alpine
  • Target deployment environment/platform
    • Local Docker, Openshift and eks

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