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;'