This repo contains a series of Dockerfiles to create an NGINX Docker image that runs NGINX as a non root, unprivileged user. Notable differences with respect to the official NGINX Docker image include:
8080
instead of 80
(this is no longer necessary as of Docker 20.03
but it's still required in other container runtimes)/etc/nginx/nginx.conf
has been removed/var/run/nginx.pid
to /tmp/nginx.pid
*_temp_path
variables to /tmp/*
New images are built and pushed to on a weekly basis (every Monday night).
Check out the docs for the upstream Docker NGINX image for a detailed explanation on how to use this image.
You can find pre-built images in each of the following registries:
Most images are built for the amd64
, arm32v5
(for Debian), arm32v6
(for Alpine), arm32v7
, arm64v8
, i386
, mips64le
(for Debian), ppc64le
and s390x
architectures.
If you override the default nginx.conf
file you may encounter various types of error messages:
nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
, you have to specify a valid pid
location by adding the line pid /tmp/nginx.pid;
at the top level of your config.nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (30: Read-only file system)
, you have to specify a valid location for the various NGINX temporary paths by adding these lines within the http
context:http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
...
}
Whilst issues and PRs are welcome, please do note that:
SECURITY
doc for more details.Please see the contributing guide for guidelines on how to best contribute to this project.
© F5, Inc. 2018 - 2024