mirror of
https://github.com/tmdinosaurcenter/kiosk-guestbook.git
synced 2026-06-04 00:28:21 -06:00
898441af0c
set -e ensures the script aborts on any error (e.g. failed chown) rather than silently continuing. --timeout 30 kills hung workers to prevent slow-client attacks from exhausting the worker pool.
19 lines
617 B
Bash
19 lines
617 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Fix ownership of the data directory so appuser can write the database.
|
|
# This runs as root (no USER directive in Dockerfile) and is safe because
|
|
# we immediately drop privileges via gosu before starting the app.
|
|
DATA_DIR=$(dirname "${DATABASE_PATH:-/data/guestbook.db}")
|
|
chown -R appuser:appuser "$DATA_DIR"
|
|
|
|
# Process index.html.template to create index.html
|
|
envsubst < /app/templates/index.html.template > /app/templates/index.html
|
|
|
|
# Drop to appuser and start Gunicorn
|
|
exec gosu appuser gunicorn \
|
|
--bind 0.0.0.0:8000 \
|
|
--workers ${GUNICORN_WORKERS:-3} \
|
|
--timeout 30 \
|
|
app:app
|