作者:保定联通员工 | 来源:互联网 | 2023-09-12 12:18
基于docker进行django服务部署项目简介从git中下载最新版本代码目录结构logstatictemplatespackage.json&package-lock.jsond
基于docker进行django服务部署 项目简介 从git中下载最新版本代码 目录结构 log static templates package.json&package-lock.json dockerfile docker-compose.yaml pip.conf sources.list requirements.txt django bm_system uwsgi.ini supervisord.conf run.sh
项目简介 项目中使用mysql、redis作为数据存储及缓存,部署方面使用supervisor进行管理uwsgi,通过uwsgi协调wsgi进行启动django服务,使用nginx进行所有网络服务的代理。
从git中下载最新版本代码 git clone -b 【branch name】 【project url】
目录结构
log 存放django运行log
static 存放django静态文件
templates 存放html模板文件
package.json&package-lock.json commitizen及changelog工具配置文件
dockerfile django服务镜像配置文件
docker-compose.yaml docker-compose镜像启动配置文件
docker-compose.yaml源码 version: '3' services:bm_system:build:context: . dockerfile: dockerfileimage: chenxu/bm_system:latestcontainer_name: bm_systemrestart: alwaysports:- 8001 :8001networks:my-network:ipv4_address: "172.20.0.11" volumes:- .:/data/apps/bm_systemnetworks:my-network:external: true
pip.conf 配置镜像内部pip源
pip.conf 使用阿里云配置
[ global] index-url = http://mirrors.aliyun.com/pypi/simple/[ install] trusted-host = mirrors.aliyun.com
sources.list 修改linux镜像源,此源为debian/kai的,centos及其他版本可替换该内容
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster main non-free contrib deb http://mirrors.cloud.aliyuncs.com/debian-security buster/updates main deb-src http://mirrors.cloud.aliyuncs.com/debian-security buster/updates main deb http://mirrors.cloud.aliyuncs.com/debian/ buster-updates main non-free contrib deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster-updates main non-free contrib deb http://mirrors.cloud.aliyuncs.com/debian/ buster-backports main non-free contrib deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster-backports main non-free contrib
requirements.txt python项目依赖目录
django 修改过源码的django库
bm_system 项目app目录
uwsgi.ini uwsgi配置
[ uwsgi] chdir = /data/apps/bm_system module = bm_system.wsgi:application master = true processes = 2 listen = 200 buffer-size = 65536 ; 无nginx使用http,否则使用socket; http = 0.0 .0.0:8001 socket = 0.0 .0.0:8001 vacuum = true
supervisord.conf supervisord配置
[ supervisord] nodaemon = truelogfile = /var/log/supervisor/supervisord.logpidfile = /var/run/supervisord.pid[ supervisorctl] serverurl = unix:///var/run/supervisor.sock[ rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[ program:uwsgi] command = sh -x /data/apps/bm_system/run.sh user = root autostart = true autorestart = true stdout_logfile = /var/log/uwsgi/uwsgi_out.log stderr_logfile = /var/log/uwsgi/uwsgi_err.log
run.sh django服务前置及启动命令
python /data/apps/bm_system/manage.py makemigrations python /data/apps/bm_system/manage.py migrate /usr/local/bin/uwsgi --ini /data/apps/bm_system/uwsgi.ini