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
|
# 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
|
ADD ${baseDir}/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,11 @@ RUN apt-get update \
|
||||||
/etc/nginx/sites-enabled/default \
|
/etc/nginx/sites-enabled/default \
|
||||||
/var/lib/apt/lists/*
|
/var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Add envsubst
|
||||||
|
# ------------
|
||||||
|
ADD ./vendor/envsubst /usr/bin/envsubst
|
||||||
|
RUN chmod +x /usr/bin/envsubst
|
||||||
|
|
||||||
# Install Grunt
|
# Install Grunt
|
||||||
# ------------
|
# ------------
|
||||||
RUN npm install -g \
|
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;
|
daemon off;
|
||||||
user www-data;
|
user www-data;
|
||||||
worker_processes 4;
|
worker_processes ${NGINX_WORKER_PROCESSES};
|
||||||
pid /run/nginx.pid;
|
pid /run/nginx.pid;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 768;
|
worker_connections ${NGINX_WORKER_CONNECTIONS};
|
||||||
# multi_accept on;
|
# multi_accept on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +67,7 @@ http {
|
||||||
##
|
##
|
||||||
# Uncomment it if you installed nginx-passenger
|
# Uncomment it if you installed nginx-passenger
|
||||||
##
|
##
|
||||||
|
|
||||||
#passenger_root /usr;
|
#passenger_root /usr;
|
||||||
#passenger_ruby /usr/bin/ruby;
|
#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