Reputation: 658
I installed openresty alpine docker image and mounted conf.d to define the server in there. It works fine.
Next, I want to change nginx.conf and set worker_process=auto
. However worker_processes
are defined in nginx.conf. I tried to volume mount nginx.conf
in Docker-compose file as:
volumes:
- ./conf.d:/etc/nginx/conf.d
- ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
however, it creates a directory nginx.conf
in ./conf
How can I mount/modify nginx.conf?
Upvotes: 3
Views: 8986
Reputation: 60134
You are mounting it with the wrong directory of the Docker if you want to update nginx root configuration.
Nginx Config Files
The Docker tooling installs its own
nginx.conf
file. If you want to directly override it, you can replace it in your own Dockerfile or via volume bind-mounting.For the Linux images, that nginx.conf has the directive include
/etc/nginx/conf.d/*.conf
; so all nginx configurations in that directory will be included. The default virtual host configuration has the original OpenResty configuration and is copied to/etc/nginx/conf.d/default.conf
.
docker run -v /my/custom/conf.d:/etc/nginx/conf.d openresty/openresty:alpine
Second thing, Better to use an absolute path for mounting.
docker run -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf openresty/openresty:1.15.8.2-1-alpine
or
docker run -v abs_path/nginx.conf:/etc/nginx/nginx.conf openresty/openresty:1.15.8.2-1-alpine
Openresty config:
docker run -v $PWD/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf openresty/openresty:1.15.8.2-1-alpine
You should mount exact file, otherwise it will break the container.
here is the default config for
/usr/local/openresty/nginx/conf/nginx.conf
# nginx.conf -- docker-openresty
#
# This file is installed to:
# `/usr/local/openresty/nginx/conf/nginx.conf`
# and is the file loaded by nginx at startup,
# unless the user specifies otherwise.
#
# It tracks the upstream OpenResty's `nginx.conf`, but removes the `server`
# section and adds this directive:
# `include /etc/nginx/conf.d/*.conf;`
#
# The `docker-openresty` file `nginx.vh.default.conf` is copied to
# `/etc/nginx/conf.d/default.conf`. It contains the `server section
# of the upstream `nginx.conf`.
#
# See https://github.com/openresty/docker-openresty/blob/master/README.md#nginx-config-files
#
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Upvotes: 3