docker-compose部署django+nginx+minio
总体文件结构

docker-compose.yml文件
version: "3" # volumes: # 自定义数据卷 networks: # 自定义网络(默认桥接)
web_network:
driver: bridge services: web:
build: ./serve
ports:
- "8000:8000"
tty: true
volumes:
- ./serve:/var/www/django # 挂载项目代码
expose:
- "8000"
networks:
- web_network
restart: always
privileged: true
environment:
TZ: Asia/Shanghai command: bash -c "/var/www/django/start.sh" nginx:
image: nginx:1.20.2
restart: always
depends_on:
- web
links:
- "web:web"
privileged: true
networks:
- web_network
ports:
- "8080:8080" volumes:
- ./nginx/web-vue:/var/www/web-vue
- ./nginx/conf:/etc/nginx/conf.d/ # 挂载nginx配置文件
- ./nginx/log:/var/log/nginx minio:
image: minio/minio:latest
command: server /data --console-address ":9090"
restart: always
privileged: true
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=admin123456 ports:
- "9000:9000"
- "9090:9090"
networks:
- web_network
expose:
- "9000"
volumes:
- ./minio_data:/data
Dockerfile文件
# 建立 python 3.9环境
FROM python:3.9 # 安装netcat
RUN apt-get update && apt install -y netcat # 设置 python 环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1 # 可选:设置镜像源为国内
COPY pip.conf /root/.pip/pip.conf # 容器内创建 myproject 文件夹
ENV APP_HOME=/var/www/django
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME # 将当前目录加入到工作目录中(. 表示当前目录)
ADD . $APP_HOME # 更新pip版本
RUN /usr/local/bin/python -m pip install --upgrade pip # 安装项目依赖
RUN pip install -r requirments.txt # 移除\r in windows
RUN sed -i 's/\r//' ./start.sh # 给start.sh可执行权限
RUN chmod +x ./start.sh CMD ["/var/www/django/start.sh"]
start.sh文件
#! /bin/bash pkill -f uwsgi -9
nohup uwsgi --ini /var/www/django/uwsgi.ini >/dev/null 2>log & echo $(date +%Y-%m-%d\ %H:%M:%S) /bin/bash
uwsgi.ini文件
[uwsgi]
master=true
enable-threads=true
#uwsgi监听的端口
# socket = 127.0.0.1:8811
http = 0.0.0.0:8000
chdir = /var/www/django/
wsgi-file = DjTe/wsgi.py
#uwsgi启动进程数
processes = 4
threads = 10
#最大接收的请求数
max-requests = 1000
#buffer缓冲区大小
buffer-size = 30000
#进程pid存放路径
pidfile = /run/uwsgi-bbs.pid
touch-chain-reload = true
#uwsgi日志存储路径
daemonize = /var/www/django/logs/uwsgi.log
# touch-logreopen = /var/www/django/logs/touchforlogrotate
lazy-apps = true
py-autoreload = 1
nginx配置文件
upstream nginx_web{
ip_hash;
server web:8000;
}
server {
listen 8080;
server_name localhost;
charset utf-8;
client_max_body_size 200m; # 允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 90; # nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; # 后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; # 连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; # 设置代理服务器保存用户头信息的缓冲区大小
proxy_buffers 4 32k; # proxy_buffers缓冲区,网页平均在32k以下的话这样设置
proxy_busy_buffers_size 64k; # 高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; # 设定缓存文件夹大小,大于这个值,将从upstream服务器传
location / {
root /var/www/web-vue;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~/api/ {
include /etc/nginx/uwsgi_params;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://nginx_web/;
}
location @router {
rewrite ^.*$ /index.html last; #vue路由拦截
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
docker-compose部署django+nginx+minio的更多相关文章
- 基于Docker Compose部署分布式MinIO集群
一.概述 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器 ...
- Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- Docker Compose + Spring Boot + Nginx + Mysql
Docker Compose + Spring Boot + Nginx + Mysql 实践 我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的 ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
随机推荐
- 排队论——系统运行指标的R语言实现
排队是在日常生活中经常遇到的现象,如顾客到商店购买物品.病人到医院看病常常要排队.此时要求服务的数量超过服务机构(服务台.服务员等)的容量.也就是说,到达的顾客不能立即得到服务,因而出现了排队现象.这 ...
- flask-wtfwkfom使用
我们在使用flask框架来搭建自己的博客,只要是设涉及到表单相关,必然会想起Flask-WTF与WTForms.对于flask初学者来说,比较容易混淆两者.今天想来一一解释两者的用法. Flask-W ...
- 由ASP.NET Core读取Response.Body引发的思考
前言 前几天有群友在群里问如何在我之前的文章<ASP.NET Core WebApi返回结果统一包装实践>的时候有点疑问,主要的疑问点就是关于Respouse的读取的问题.在之前的文章&l ...
- 19.13备库duplicate恢复新主库(二)
问题描述:主备两个库不在同一个机房,此时想从这一套库中在复制一套可读可写的新库出来.网络带宽要求比较高,需要从备库中使用备份在起一个新库,也要测试下使用duplicate从备库能够在复制一个新库.经过 ...
- PHP__采集类__Snoopy
Snoopy 目录 了解Snoopy.1 功能:...1 下载Snoopy:...2 Snoopy常用 ...
- 企事业单位通用版招采系统(SRM),招采全过程闭环流程
前言 采购供应商管理的难点:沟通耗费精力,业务协同难,管控混乱.优质的供应商,是直接能够影响采购成本和企业采购战略落地的,而供应商管理的终极路径是建立企业自己的供应商私域流量池. 一.供应商管理 1. ...
- .NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
前言 前段时间有朋友问道一个这样的问题,.NET Core中如何通过Attribute的元数据信息来调用标记的对应方法.我第一时间想到的就是通过C#反射获取带有Custom Attribute标记的类 ...
- String知识点整理
使用双引号创建字符串时,JVM会现在字符串常量池中查找是否已存在该字符串,存在则返回,不存在则在池中创建后再返回.与此同时,使用String的intern方法也是类似处理. 使用new String的 ...
- 简单的了解下 Fetch API 的工作原理
一.简介 Fetch API是一种现代的Web API,提供了一种异步获取网络资源的方法.由于其简单性.灵活性和一致性,它已经成为Web应用程序中获取数据和资源的流行选择.在本文中,我们将深入探讨Fe ...
- Docker构建镜像踩坑日记
从Github上拉取python项目后,运行dockerfile构建镜像失败,一步步查找原因 主要原因就是国内下载各种依赖超时,以下提供pip.apt.pipenv镜像解决方案 pip更换国内镜像 这 ...