Files
dbstorage/dbapp/entrypoint.sh

41 lines
1.1 KiB
Bash

#!/bin/bash
set -e
# Определяем окружение (по умолчанию production)
ENVIRONMENT=${ENVIRONMENT:-production}
echo "Starting in $ENVIRONMENT mode..."
if [ -d "logs" ]; then
echo "Directory logs already exists."
else
echo "Creating logs directory..."
mkdir -p logs
fi
echo "Waiting for PostgreSQL..."
until PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -c '\q' 2>/dev/null; do
echo "PostgreSQL is unavailable - sleeping"
sleep 1
done
echo "PostgreSQL started"
echo "Running migrations..."
uv run python manage.py migrate --noinput
if [ "$ENVIRONMENT" = "production" ]; then
echo "Collecting static files..."
uv run python manage.py collectstatic --noinput
fi
if [ "$ENVIRONMENT" = "development" ]; then
echo "Starting Django development server..."
exec uv run python manage.py runserver 0.0.0.0:8000
else
echo "Starting Gunicorn..."
exec uv run gunicorn --bind 0.0.0.0:8000 \
--workers ${GUNICORN_WORKERS:-3} \
--timeout ${GUNICORN_TIMEOUT:-120} \
dbapp.wsgi:application
fi