(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部署项目的更多相关文章

  1. Nginx+uwsgi+django部署项目

    nginx把请求转发给uwsgi,然后把uwsgi处理得到的结果返回给浏览器. 安装nginx: yum -y install gcc pcre-devel openssl-devel #安装Ngin ...

  2. Nginx+uWSGI+Django部署web服务器

    目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...

  3. nginx+uwsgi+djangos部署项目完整

    1.基本信息 Linux 版本:SentOS7.4 Python 版本:3.7.1 2.下载 uWSGI pip3 install uwsgi uwsgi 主要的任务是座位分发路由的服务器. 先写一个 ...

  4. nginx+uwsgi+django部署流程

    当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...

  5. nginx+uwsgi+django 部署原理

    python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...

  6. ubuntu16.4+nginx+uwsgi+Django 部署上线

    Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...

  7. 10、nginx+uwsgi+django部署(动静分离)

    10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...

  8. 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤

    网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意. 1.首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依 ...

  9. Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境

    首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...

随机推荐

  1. [虚拟化]虚拟机 XML 配置

    虚拟机 XML 配置示例 虚拟机的 XML 配置(也称为 域 XML )决定虚拟机的设置和组件.下表显示了虚拟机(VM)的 XML 配置示例并解释了其内容. 要获取虚拟机的 XML 配置,您可以使用 ...

  2. 华为模拟器ensp AR启动失败 代码40 解决方案

    前几天更换了一台电脑,安装好Windows10 ,安装ensp 模拟器,安装好ensp后,发现AR都启动不了.卸载重新安装还是不行,此时度娘了一下,发现都说是协助不彻底,没有清理干净安装插件.我做了最 ...

  3. csaw密码

    题目:AAoHAR1TIiIkUFUjUFQgVyInVSVQJVFRUSNRX1YgXiJSVyJQVRs=写python脚本: import base64 ciphertext="AAo ...

  4. [Matlab]求解线性方程组

    转自:http://silencethinking.blog.163.com/blog/static/911490562008928105813169/ AX=B或XA=B在MATLAB中,求解线性方 ...

  5. CVE-2021-40449 NtGdiResetDC UAF

    背景   CVE-2021-40449是一个存在于Win32k内核驱动中的UAF漏洞.该漏洞在2021年八月下旬九月上旬被Kaspersky发现用于野外攻击活动中.通过Hook win32k驱动执行N ...

  6. Docker容器日志的种类以及存储

    Docker 日志 Docker的日志可以分为两类: stdout标准输出日志 stdout就是标准输出里面的日志, 比如程序运行时输出在控制台的内容就会写入标准输出 原理就是当在启动进程的时候,进程 ...

  7. BI系统:发挥大数据的价值

    ​大数据是指大数据集,这些数据集经过计算分析以揭示与数据的某个方面相关的模式和趋势.首先,还是要重新审视大数据的定义.行业里对大数据的定义有很多,有广义的定义,也有狭义的定义. 大数据的分析与挖掘,把 ...

  8. 传统式BI工具和自助式BI工具到底有什么区别

    相信很多人都听说过BI工具,但是你听说过自助BI工具吗?自助式BI工具面向没有IT背景的业务分析师,比传统的BI工具灵活易用,在一定程度上摆脱了对IT部门的大幅度依赖,使数据产品链更加大众化,更加理解 ...

  9. 【C#基础概念】编程语言:弱类型、强类型、动态类型、静态类型

    一.看图区别编程语言 一般来讲,看第一个图就够了 这图是引用的,有错误,Python是强类型,但是图片中却归为弱类型了. 业界堆静态和动态的区分达到共识. 但是堆强类型和弱类型语言还未达成共识.我个人 ...

  10. C# 事件Event(个人整理)

    内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上)   https://www.youtube ...