最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高。特此写下随笔与小伙伴们分享,希望能对大家有所启发。

docker的理论我就不赘述了,直接上干菜吧。

本人django项目目录结构:

xxx_project:

  apps

    app1

    app2

    app3

extra_apps

    xadmin

    ueditor

  xxx_project

    settings.py

    urls.py

    wsgi.py

  templates

    xxx.html

  requirements.txt

  manage.py

  static

media

  conf

    uwsgi.ini

  nginx

    Dockerfile

    nginx.conf

    uc_nginx.conf

  Dockerfile

  docker-compose.yml

  docker-entrypoins.sh

1.首先上docker-compose.yml配置文件

version: '3'
services:
db:
image: mysql:5.7
expose:
- 3306
environment:
MYSQL_DATABASE: xxxxxx
MYSQL_ROOT_PASSWORD: xxxxxx
MYSQL_USER: root
volumes:
- ./mycustom.cnf:/etc/mysql/conf.d/custom.cnf
- ~/containers/mysql/data:/var/lib/mysql
web:
build: .
restart: always
command: uwsgi -i ./conf/uwsgi.ini
volumes:
- .:/docker_api
ports:
- 8000:8000
depends_on:
- db
links:
- db
nginx:
container_name: nginx-container
restart: always
depends_on:
- web
build: ./nginx
ports:
- 8080:80
volumes:
- .:/docker_api ~

注:db 数据库

  web 项目

  nginx 代理服务器

2.现在上web的Dockerfile配置文件

FROM python:2.7.12
LABEL maintainer 0x0101010
ENV PYTHONUNBUFFERED 1
RUN mkdir /docker_api
WORKDIR /docker_api
ADD . /docker_api
RUN pip install --upgrade pip
RUN pip install -i https://pypi.douban.com/simple -r requirements.txt

3.现在上nginx的Dockerfile

FROM nginx:latest
COPY uc_nginx.conf /etc/nginx/sites-available/ RUN mkdir -p /etc/nginx/sites-enabled/\
&& ln -s /etc/nginx/sites-available/uc_nginx.conf /etc/nginx/sites-enabled/ CMD ["nginx", "-g", "daemon off;"]

4. nginx 和uwsgi的配置就不在赘述,本人前一篇随笔有详细讲解,可参考

5.项目启动

sudo docker-compose up --build

部署成功

至此,项目已通过docker-compose 部署成功,希望对大家有所启发,如果在部署中遇到问题可以留言,一起讨论。同时也希望大神评论指教。

  

docker 部署django项目(nginx + uwsgi +mysql)的更多相关文章

  1. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  2. 云服务器部署Python项目(nginx+uwsgi+mysql+项目)

    python项目部署到云服务器 关注公众号"轻松学编程"了解更多. 一.硬件准备 云服务器,系统ubuntu_16_04 . 注意:要在安全组中开放Http的80端口. 二.软件准 ...

  3. Docker 部署Django项目

    使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsw ...

  4. 云服务器上利用Docker部署Django项目

    转载别人的,请看下面链接 云服务器上利用Docker部署Django项目

  5. 在centos8使用Docker部署Django项目

    引言 在本文中将介绍在Docker中通过django + uwsgi + nginx部署方式部署Django项目, 由于记录的是学习过程,使用的都是目前较高的版本. python 版本为3.8.3 d ...

  6. 打造专属测试平台4-使用Docker部署Django项目

    编写完项目代码后,为了稳定的运行,需要将其部署至服务器.这里我选择了Docker去部署Django后端代码. 首先来看看Runoob对Docker的介绍: Docker 是一个开源的应用容器引擎,基于 ...

  7. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器

    部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...

  8. SLAM+语音机器人DIY系列:(八)高阶拓展——2.centos7下部署Django(nginx+uwsgi+django+python3)

    0.安装步骤预览(1)系统默认自带python2.x,所以需要先安装python3.x(2)python2对应pip,python3对应pip3,用源码安装python3后pip3也自动安装了(3)用 ...

  9. centos7下部署Django(nginx+uwsgi+python3+django)

    系统版本 centos7 python版本 使用官方python3.6.3正式版 django版本 使用本文发布时最新的1.11.7 uwsgi版本 使用本文发布时最新的2.0.15 nginx版本 ...

随机推荐

  1. 高云的jQuery源码分析笔记

    (function( window, undefined ) { // 构造jQuery对象 var jQuery = function( selector, context ) { return n ...

  2. Golang cron 定时任务使用

    1.cron 表达式的基本格式 用过 linux 的应该对 cron 有所了解.linux 中可以通过 crontab -e 来配置定时任务.不过,linux 中的 cron 只能精确到分钟.而我们这 ...

  3. if 和case

    select case 'O' when 'O' then (1*5-6) when 'C' then (1*5-6) when 'EC' then (1*5-6) --else null --end ...

  4. sql中替换换行符和空格的示例

    select DiscussID,L.Name as LocationName , C.Name as ClientName, REPLACE(BrandName,' ','') BrandName ...

  5. 转载:@Html.ValidationSummary(true)

    ASP.NET MVC3 Model验证总结 @Html.ValidationSummary(true)   http://www.wyjexplorer.cn/Post/2012/8/3/model ...

  6. [javaSE] 网络编程(TCP,UDP,Socket特点)

    UDP特点: 面向无连接,把数据打包发过去,收不收得到我不管 数据大小有限制,一次不能超过64k,可以分成多个包 这是个不可靠的协议 速度很快 视频直播,凌波客户端,feiQ都是UDP协议 TCP特点 ...

  7. eclipse启动项目报错:java.lang.ClassNotFoundException: ContextLoaderListener

    eclipse 启动项目报错:找不到 Spring 监听器类 org.springframework.web.context.ContextLoaderListener 严重: Error confi ...

  8. Hibernate的多对多实例

    在完成了一对多的实例的基础上,继续做多对多实例.例子是老师和学生,一个老师教多个学生,一个学生也有多个老师. 文档结构如图:

  9. 【代码笔记】iOS-cell自动变化大小

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  10. 在JS中如何把毫秒转换成规定的日期时间格式

    最近做的一个项目,从后台查询到日期数据传到前台JS中遍历之后显示的是以"14"开头的毫秒数,刚开始想用"simpleDateFormat"类处理,结果显示都不显 ...