如何使用宝塔面板部署Django网站

一、准备工作

1.一台有公网IP的云服务器;

2.一台联网的电脑;

3.已准备好的Django项目文件。常用命令如下:

# 生成依赖文件
pip freeze > requirements.txt

# 收集静态文件
python manage.py collectstatic

# 检查迁移文件
python manage.py makemigrations
python manage.py migrate

 

二、开始安装

(一)部署Django及依赖

1.使用SSH连接服务器,登录后,输入以下命令安装宝塔面板(debian系统):

wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh && bash install_panel.sh ed8484bec

2.前往云服务器官网,在安全组(防火墙)放行8000端口(后端)和宝塔登录端口(你的可能不同,以终端显示为准),然后保存一下终端里面的宝塔登录信息

==================================================================
Congratulations! Installed successfully!

========================面板账户登录信息==========================

 【云服务器】请在安全组放行 36666 端口
 外网ipv4面板地址: https://44.66.16.91:36666/fg12bfg5
 内网面板地址:     https://172.22.23.2:36666/fg12bfg5
 username: w321p3uf
 password: feddddf2

3.通过外网地址,登录宝塔,首次登录会弹出以下窗口,选择Docker套件即可。

4.交django项目文件上传到“/www/dk_project/wwwroot/”目录,然后解压,再确保项目中有以下文件(没有则需要创建):

Dockerfile
docker-compose.yml
requirements.txt
manage.py

其中,Dockerfile文件内容如下:

FROM python:3.10 # 这里版本指定到10就可以了,不要再细化,否则可能构建容器出错

WORKDIR /app

COPY . /app

RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["gunicorn", "ibrush_end.wsgi:application", "--bind", "0.0.0.0:8000"]

其中,docker-compose.yml文件内容如下:

version: "3"

services:
  web:
    build: .
    container_name: ibrush_django
    ports:
      - "8000:8000"
    restart: always

5.创建Docker容器。首先,在宝塔的Docker设置中,添加一个加速url(https://docker.1ms.run),因为拉取国外镜像会被墙。然后用SSH连接服务器,依次输入以下命令:

# 切换到项目目录
cd /www/dk_project/wwwroot/ibrush_end

# 构建容器
docker build -t django_ibrush .

出现以下的类似内容,表示镜像构建完成:

Successfully built dabcb8dd2fc5
Successfully tagged django_ibrush:latest

6.如果启动后,无法通过ip加端口直接在浏览器中访问,可以查看django配置文件是否出错,修改后需要重新build,再启动容器,命令如下:

# 删除旧容器
docker rm -f ibrush

# 重新build(关键)
docker build --no-cache -t django_ibrush .

#重新运行
docker run -d \
  --name ibrush \
  -p 8000:8000 \
  django_ibrush

 

(二)部署MySQL数据库

 

 

THE END
点赞0
评论 抢沙发

请登录后发表评论

    暂无评论内容