Nginx 1.10 server and a reverse proxy server Docker image
This container image includes Nginx 1.10 server and a reverse server for OpenShift and general usage. Users can choose RHEL based image. The RHEL image is available in the Red Hat Container Catalog as registry.access.redhat.com/rhscl/nginx-110-rhel7.
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 1.10 daemon. The image can be used as a base image for other applications based on nginx 1.10 web server. Nginx server image can be extended using source-to-image tool.
Usage
To build a simple sample-app application using standalone S2I and then run the resulting image with Docker execute:
- For RHEL based image
$ s2i build https://github.com/sclorg/nginx-container.git --context-dir=1.10/test/test-app/ rhscl/nginx-110-rhel7 nginx-sample-app $ docker run -p 8080:8080 nginx-sample-app
- For CentOS based image
$ s2i build https://github.com/sclorg/nginx-container.git --context-dir=1.10/test/test-app/ centos/nginx-110-centos7 nginx-sample-app $ docker run -p 8080:8080 nginx-sample-app
Accessing the application:
$ curl 127.0.0.1:8080
S2I build support
Nginx server image can be extended using S2I tool (see Usage section). S2I build folder structure:
Folder name | Description |
---|---|
./nginx-cfg/*.conf | Should contain all nginx configuration we want to include into image |
./nginx-default-cfg/*.conf | Contains any nginx config snippets to include in the default server block |
./ | Should contain nginx application source code |
Environment variables and volumes
The nginx container image supports the following configuration variable, which can be set by using the -e
option with the docker run command:
Variable name | Description |
---|---|
NGINX_LOG_TO_VOLUME |
When NGINX_LOG_TO_VOLUME is set, nginx logs into /var/opt/rh/rh-nginx110/log/nginx/ |
Troubleshooting
By default, nginx logs into standard output, so the log is available in the container log. The log can be examined by running:
docker logs <container>
If NGINX_LOG_TO_VOLUME
variable is set, nginx logs into /var/opt/rh/rh-nginx110/log/nginx/
, which can be mounted to host system using the Docker volumes.
See also
Dockerfile and other sources for this container image are available on https://github.com/sclorg/nginx-container. In that repository, Dockerfile for CentOS is called Dockerfile, Dockerfile for RHEL is called Dockerfile.rhel7.