部署Django后端接口
下载Python环境及一些尝试
由于项目用到是3.8.8版本,避免之后出现问题。就不下最新的了
docker pull python:3.8.8

以python镜像启动一个容器,参数以命令模式进入该容器:
docker run -it python /bin/bash
/bin/bash进入容器中的命令行,暂时我理解为进入之后用法和ubuntu中的终端一样。(毕竟一个容器相当于一个虚拟机[滑稽])
但是上面的命令的命令会默认运行最新的python版本,本地的旧版本都不行
运行指定版本镜像
docker run -it python:3.8.8 /bin/bash

后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式,--name给容器起名
docker run -itd --name pythonTest python:3.8.8 /bin/bash

进入容器
exec 命令适用于进入后台运行的容器
docker exec -it 容器ID /bin/bash
可以直接进入容器中下载Django,执行如下命令,第一次不行,第二次就好了
pip install django
pip包管理
在本地下载pip管理工具(可以下载其他工具试试,这里用pipreqs)
pip install pipreqs
下载完执行命令
pipreqs --encoding=utf8 ./
导出文件到当前路径,后续可继续添加所需要的库


运行项目容器
先跑出项目容器
docker run -it -d --name Djangotest -p 9001:9001 -v /home/andy/Web/Django:/home/andy/Web/Django python:3.8.8
#-v /home/test:/home/test是将/home/test是将主机上的该目录挂载到容器内的home目录下(当然也可以使用docker cp命令)
其他解释见第一节
-v 用于挂载容器目录路径,内外共享目录,用法:-v 宿主机路径:容器路径
进入容器
docker exec -it Djangotest bash
然后安装requirements.txt中的库,执行完再安装uwsgi。
pip install -r /home/andy/Web/Django/requirements.txt
pip install uwsgi
uwsgi运行项目
uwsgi --ini /home/andy/Web/Django/pvsite_uwsgi.ini
报错1(查询容器IP解决)

应该pvsite_uwsgi.ini中的IP配置有问题
查看docker容器的IP
docker inspect 99ef4b98f188(该容器ID)

容器IP就是172.17.0.5
修改pvsite_uwsgi.ini配置如下
[uwsgi]
#chdir=/home/andy/Documents/photovoltaic/photovoltaicsite # 指定运行目录:项目根目录的绝对路径
# 指定sock的文件路径,可以用端口或sock文件(Nginx监听的端口)
socket = 172.17.0.5:9001
# stats子系统允许您将uWSGI的内部统计数据导出为JSON, 在指定的地址上,开启状态服务
#stats = 127.0.0.1:9999
#载入wsgi-file
wsgi-file = photovoltaicsite/wsgi.py
#允许主进程存在(enable master process)
master=true
#设置最大工作进程数:将会生成4个进程, 每个进程有2个线程
processes=4
threads = 2
#某个权限
chmod-socket = 666
#退出时清除环境
vacuum=tru

本文详细记录了使用Docker部署Django后端接口与Vue前端项目的全过程,包括环境搭建、常见错误处理、配置文件详解及双容器间的通信。
最低0.47元/天 解锁文章
280

被折叠的 条评论
为什么被折叠?



