1、生成requiremesnts.txt文件
执行 pip freeze > requirements.txt
2、编写gunicorn-config.py文件
from multiprocessing import cpu_count
bind = ["0.0.0.0:8521"]
# daemon = True
pidfile = 'logs/gunicorn.pid'
workers = cpu_count() * 2
wprker_class = "gevent"
worker_connections = 65535
keepalive = 60
timeout = 30
graceful_timeout = 10
forwarded_allow_ips = '*'
capture_output = True
loglevel = 'info'
errorlog = 'logs/error.log'
注: 在使用docker部署Django项目的时候,daemon不能赋值为True,原因暂未找到
3、编写 Dockerfile
# 使用 Python 3.9 作为镜像的基础镜像
# FROM python:3.9
FROM server_management
# 设置工作目录
WORKDIR /data/mesCode/backEndCode/serverManagement
# 复制项目文件到镜像中
COPY . /data/mesCode/backEndCode/serverManagement
# 安装项目依赖
# RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# 生成数据库
# RUN python manage.py makemigrations && python manage.py migrate
# 对外暴露的端口号
EXPOSE 8521
# 使用 Gunicorn 运行 Django 项目
CMD ["gunicorn", "-c", "/data/mesCode/backEndCode/serverManagement/serverManagement/gunicorn-config.py", "serverManagement.wsgi"]
#CMD ["gunicorn", "--bind", "0.0.0.0:8521", "serverManagement.wsgi"]
4、创建镜像
docker build -t server_management_v1 .
5、创建容器
docker run -itd --name serverManagementV1 -p 8521:8521 --restart=always -v .:/data/mesCode/backEndCode/serverManagement server_management_v1