diff --git a/src/DjangoBlog-master/deploy/entrypoint.sh b/src/DjangoBlog-master/deploy/entrypoint.sh index 2fb6491..c8e2ea0 100644 --- a/src/DjangoBlog-master/deploy/entrypoint.sh +++ b/src/DjangoBlog-master/deploy/entrypoint.sh @@ -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 # 每个工作进程的线程数量 \ No newline at end of file