mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-14 20:40:17 -05:00
Variables in Nginx configuration (#853)
* Add envsubst binary to image * Generate nginx.conf from template, with env-vars * Remove nginx.conf, now generated from template * Reload nginx config after writing file Co-authored-by: Shane Kilkelly <shane.kilkelly@overleaf.com>
This commit is contained in:
parent
b39f2ba107
commit
d674a12167
5 changed files with 47 additions and 4 deletions
|
@ -70,7 +70,7 @@ ADD ${baseDir}/runit /etc/service
|
|||
|
||||
# Configure nginx
|
||||
# ---------------
|
||||
ADD ${baseDir}/nginx/nginx.conf /etc/nginx/nginx.conf
|
||||
ADD ${baseDir}/nginx/nginx.conf.template /etc/nginx/templates/nginx.conf.template
|
||||
ADD ${baseDir}/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
|
||||
|
||||
|
||||
|
|
|
@ -30,6 +30,11 @@ RUN apt-get update \
|
|||
/etc/nginx/sites-enabled/default \
|
||||
/var/lib/apt/lists/*
|
||||
|
||||
# Add envsubst
|
||||
# ------------
|
||||
ADD ./vendor/envsubst /usr/bin/envsubst
|
||||
RUN chmod +x /usr/bin/envsubst
|
||||
|
||||
# Install Grunt
|
||||
# ------------
|
||||
RUN npm install -g \
|
||||
|
|
34
init_scripts/01_nginx_config_template.sh
Executable file
34
init_scripts/01_nginx_config_template.sh
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
## Generate nginx config files from templates,
|
||||
## with environment variables substituted
|
||||
|
||||
nginx_dir='/etc/nginx'
|
||||
nginx_templates_dir="${nginx_dir}/templates"
|
||||
|
||||
if ! [ -d "${nginx_templates_dir}" ]; then
|
||||
echo "Nginx: no template directory found, skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
nginx_template_file="${nginx_templates_dir}/nginx.conf.template"
|
||||
nginx_config_file="${nginx_dir}/nginx.conf"
|
||||
|
||||
if [ -f "${nginx_template_file}" ]; then
|
||||
export NGINX_WORKER_PROCESSES="${NGINX_WORKER_PROCESSES:-4}"
|
||||
export NGINX_WORKER_CONNECTIONS="${NGINX_WORKER_CONNECTIONS:-768}"
|
||||
|
||||
echo "Nginx: generating config file from template"
|
||||
|
||||
# Note the single-quotes, they are important.
|
||||
# This is a pass-list of env-vars that envsubst
|
||||
# should operate on.
|
||||
envsubst '${NGINX_WORKER_PROCESSES} ${NGINX_WORKER_CONNECTIONS}' \
|
||||
< "${nginx_template_file}" \
|
||||
> "${nginx_config_file}"
|
||||
|
||||
echo "Nginx: reloading config"
|
||||
service nginx reload
|
||||
fi
|
|
@ -1,10 +1,14 @@
|
|||
## ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ##
|
||||
## ! This file was generated from a template ! ##
|
||||
## ! See /etc/nginx/templates/ ! ##
|
||||
## ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ##
|
||||
daemon off;
|
||||
user www-data;
|
||||
worker_processes 4;
|
||||
worker_processes ${NGINX_WORKER_PROCESSES};
|
||||
pid /run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
worker_connections ${NGINX_WORKER_CONNECTIONS};
|
||||
# multi_accept on;
|
||||
}
|
||||
|
||||
|
@ -63,7 +67,7 @@ http {
|
|||
##
|
||||
# Uncomment it if you installed nginx-passenger
|
||||
##
|
||||
|
||||
|
||||
#passenger_root /usr;
|
||||
#passenger_ruby /usr/bin/ruby;
|
||||
|
BIN
vendor/envsubst
vendored
Normal file
BIN
vendor/envsubst
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue