热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

5、基于docker进行django服务部署

基于docker进行django服务部署项目简介从git中下载最新版本代码目录结构logstatictemplatespackage.json&package-lock.jsond


基于docker进行django服务部署

  • 项目简介
  • 从git中下载最新版本代码
  • 目录结构
  • log
  • static
  • templates
  • package.json&package-lock.json
  • dockerfile
  • docker-compose.yaml
    • docker-compose.yaml源码
  • pip.conf
    • 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=true
logfile=/var/log/supervisor/supervisord.log
pidfile=/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

推荐阅读
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
author-avatar
保定联通员工
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有