File size: 1,274 Bytes
6923d87 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/bash
set -euo pipefail
# ---------------------------------------------------------------------------
# Container adaptation of the systemd EnvironmentFile mechanism.
#
# On a systemd host, nginx gets UPSTREAM_API_KEY via:
# EnvironmentFile=/etc/nginx-upstream.env
# Here we read the same root-only file and export it into the nginx master
# process environment, which is what `env upstream_api_key;` exposes to the
# config. The key is still never written into nginx.conf.
# ---------------------------------------------------------------------------
if [[ -f /etc/nginx-upstream.env ]]; then
# shellcheck disable=SC1091
set -a; source /etc/nginx-upstream.env; set +a
echo "[entrypoint] loaded UPSTREAM_API_KEY from /etc/nginx-upstream.env"
fi
# Fail fast if the installer did not produce a config.
[[ -f /usr/local/nginx/nginx.conf ]] || { echo "[entrypoint] nginx.conf missing" >&2; exit 1; }
# Demo upstream: echoes the headers it received, so the injected
# Authorization header is visible at the proxy surface.
python3 /opt/demo_upstream.py &
echo "[entrypoint] demo upstream listening on 127.0.0.1:5000"
# Validate, then run in foreground (no systemd in container).
/usr/local/nginx/sbin/nginx -t
exec /usr/local/nginx/sbin/nginx -g 'daemon off;'
|