Update entrypoint.sh

develop
pfy5v82cw 4 months ago
parent 9ebaf12bee
commit aed8284a2d

@ -1,31 +1,50 @@
#!/usr/bin/env bash
# 指定脚本解释器为bash
# 定义应用名称为djangoblog
NAME="djangoblog"
# 定义Django项目根目录路径
DJANGODIR=/code/djangoblog
# 定义运行应用的用户
USER=root
# 定义运行应用的用户组
GROUP=root
# 定义Gunicorn工作进程数量
NUM_WORKERS=1
# 定义Django的WSGI模块路径
DJANGO_WSGI_MODULE=djangoblog.wsgi
# 输出启动信息,显示当前启动的应用名称和执行用户
echo "Starting $NAME as `whoami`"
# 进入Django项目根目录
cd $DJANGODIR
# 将项目目录添加到Python路径中确保Python能正确导入项目模块
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# 执行Django项目初始化命令序列若任何一步失败则退出脚本
# 1. 生成数据库迁移文件
python manage.py makemigrations && \
# 2. 应用数据库迁移
python manage.py migrate && \
# 3. 收集静态文件(无交互模式)
python manage.py collectstatic --noinput && \
# 4. 强制压缩静态文件通常用于CSS/JS压缩
python manage.py compress --force && \
# 5. 构建搜索索引(如果项目使用了全文搜索功能)
python manage.py build_index && \
# 6. 编译翻译文件(用于国际化支持)
python manage.py compilemessages || exit 1
# 启动Gunicorn作为WSGI服务器替换当前进程exec命令特性
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind 0.0.0.0:8000 \
--log-level=debug \
--log-file=- \
--worker-class gevent \
--threads 4
--name $NAME \ # 指定应用名称
--workers $NUM_WORKERS \ # 指定工作进程数量
--user=$USER --group=$GROUP \ # 指定运行的用户和用户组
--bind 0.0.0.0:8000 \ # 绑定监听地址和端口0.0.0.0表示允许所有网络访问)
--log-level=debug \ # 设置日志级别为debug
--log-file=- \ # 日志输出到标准输出(-表示stdout
--worker-class gevent \ # 使用gevent工作类支持异步IO提高并发性能
--threads 4 # 每个工作进程的线程数量
Loading…
Cancel
Save