使用docker-compose+nginx+uwsgi+django部署项目
(1)centos上下载docker + docker-compose
(2)基础目录


(3)首先创建一个纯净的python+django+uwsgi的镜像,便于后期使用(也可不用创建,后期docker-compose的时候再创建python镜像,这里我们先创建,后期直接把项目放进去,不用每次都下载环境)
创建python+django+uwsgi的纯净镜像,命名镜像名为django:
#Dockerfile 这个dockrfile不是基础目录中的Dockerfile,需要在其他目录中创建 FROM python
RUN mkdir /code
ADD ./requirements.txt /code
WORKDIR /code
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
RUN rm -f requirements.txt
#requirements.txt
django==2.2.2
psycopg2
uwsgi
(4)基础目录中的Dockerfile
#使用刚刚创建的基础镜像django FROM django
WORKDIR /code
RUN mkdir hello #创建项目目录
ADD . /code/hello
(5)创建uwsgi配置文件
创建conf/uwsgi.ini配置文件
#conf/uwsgi.ini [uwsgi]
socket = 0.0.0.0:8000
chdir = /code/hello #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径
module = hello.wsgi
#daemonize = uwsgi.log
master = True
processes = 4
(6)创建nginx配置文件
创建nginx/nginc.conf
#nginx/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 10.127.2.3:8000; #端口要和uwsgi里配置的一样
#uwsgi_param UWSGI_SCRIPT hello.wsgi; #wsgi.py所在的目录名+.wsgi
#uwsgi_param UWSGI_CHDIR /opt/deploy/hello; #项目路径 }
location /static/ {
alias /code/hello/static/; #静态资源路径 #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径
}
}
(7)创建nginx的Dockerfile
创建nginx/Dockerfile
#nginx/Dockerfile FROM nginx WORKDIR /etc/nginx/
RUN cp nginx.conf ./nginx.conf.bak
COPY nginx.conf ./ CMD ["nginx", "-g", "daemon off;"]
(8)创建docker-compose.yml
version: '3' services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: 12345
networks:
net-django:
ipv4_address: 10.127.2.4 web:
build: .
#command: python3 manage.py runserver 0.0.0.0:8000
privileged: true
#ports:
# - 8000:8000
depends_on:
- db
networks:
net-django:
ipv4_address: 10.127.2.3
#command: uwsgi --chdir=/code/hello --module=hello.wsgi --master --socket 0.0.0.0:8000
command: uwsgi --ini /code/hello/conf/uwsgi.ini #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径 nginx:
container_name: nginx-container
restart: always
depends_on:
- web
links:
- "web:web"
build: ./nginx
ports:
- 8080:80
networks:
net-django:
ipv4_address: 10.127.2.2 networks:
net-django:
ipam:
config:
- subnet: 10.127.2.0/24
(9)最后创建容器
docker-compose build
docker-compose up -d
(10)容器创建启动后,登录x.x.x.x:8080即可

使用docker-compose+nginx+uwsgi+django部署项目的更多相关文章
- Nginx+uwsgi+django部署项目
nginx把请求转发给uwsgi,然后把uwsgi处理得到的结果返回给浏览器. 安装nginx: yum -y install gcc pcre-devel openssl-devel #安装Ngin ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- nginx+uwsgi+djangos部署项目完整
1.基本信息 Linux 版本:SentOS7.4 Python 版本:3.7.1 2.下载 uWSGI pip3 install uwsgi uwsgi 主要的任务是座位分发路由的服务器. 先写一个 ...
- nginx+uwsgi+django部署流程
当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...
- nginx+uwsgi+django 部署原理
python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...
- ubuntu16.4+nginx+uwsgi+Django 部署上线
Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...
- 10、nginx+uwsgi+django部署(动静分离)
10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...
- 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤
网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意. 1.首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依 ...
- Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境
首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...
随机推荐
- js根据ClassName来删除元素(有坑误入)
今天,被一个很简单的问题坑了一下午,基础不扎实.(js根据class名称来删除Dom元素) 但是结果却不是这样的.弄了好久还不知道怎么回事.最后找到了答案. 结果如下:为啥还有test2,4,6呢. ...
- selenium+python自动化103-一闪而过的dialog如何定位
前言 web页面操作的时候经常会遇到一闪而过的 dialog 消息,这些提示语一般只出现了几秒,过后元素节点就会在DOM中消失了. 本篇讲解下用chrome 浏览器如何定位一闪而过的 dialog 消 ...
- vue项目npm run dev 报错error in ./src/main.js Module build failed: Error: Cannot find module 'babel-plugin-syntax-jsx'
问题: vue 项目npm run dev运行时报错,如下图: 原因: 缺少相应的组件 解决办法: 安装相应组件: npm install babel-plugin-syntax-jsx --sav ...
- Python的介绍与主要方向
1.1 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的: 计算机的发明,是为了用机器取代/解放人力, ...
- (八)使用 jmh 压测 Dubbo
1.JMH简介 JMH即Java Microbenchmark Harness,是Java用来做基准测试的一个工具,该工具由OpenJDK提供并维护,测试结果可信度高. 相对于 Jmeter.ab , ...
- linux shell编程流程控制
条件选择 单分支条件 多分支条件 选择执行if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 f ...
- Laravel常用工具类
工具类函数 Geom转成字符串 如果项目中有大量的计算经纬度需求,强烈建议使用PgSql的geometry类型 public static function formatGeomToStr($geom ...
- php 23种设计模型 - 组合模式(合成模式)
组合模式(Composite) 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这 ...
- 实践1使用XGB实现酒店信息消歧
XGB算法是决策树衍生出来的一种算法 场景:酒店的业务人员希望我们能够提供一个算法服务去为酒店信息做一个自动化的匹配,以通过算法的手段,找到那些确定相同的酒店和确定不同的酒店 以下代码为部分 理解业务 ...
- 关于深搜dps
哈哈,我又来了! 但是!今天我又带来了让人开心到窒息的 ----深搜dps 其实关于深搜,概念没啥可讲的,总结一句话概括就是:一直往下搜,直到满足条件的,再回来,沿着下一条路搜,直到把路全走完为止.. ...