ubuntu+Docker双容器docker-compose部署Django+Vue项目(2-Django)

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

部署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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值