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/ ...
随机推荐
- PHP微信三方平台-代公众号发送消息模板
1.微信三方平台代公众号实现业务接口API文档地址: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Offi ...
- vue条件判断循环
条件判断 v-if <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- linux 安装 node 和 npm 服务
1.安装文件下载 下载地址:https://nodejs.org/zh-cn/download/ 2.安装步骤 1.将安装包上传到指定位置(我习惯放到:/usr/local/application/目 ...
- 用CMD或者bat修改host文件
第一行代码标识 取消host的只读属性 第二行写入 attrib -R C:\WINDOWS\system32\drivers\etc\hosts @echo 127.0.0.1 baidu.com ...
- linux高级编程之线程间的通信(pthread_cleanup_push和pthread_cleanup_pop)
linux高级编程之线程间的通信(pthread_cleanup_push和pthread_cleanup_pop) 线程可以安排他退出时需要调用的函数,这与进程可以用atexit函数安排进程退出时需 ...
- Mac M1(arm 系列芯片)如何安装 Chromium | Puppeteer
最近写个脚本用到 puppeteer,然后安装 Chromium 出现一点问题,这里记录一下解决方案. Puppeteer 自动安装失败 在 Puppeteer 安装时会自动安装 Chromium,然 ...
- Nuget 多项目复合打包
问题描述 我这里有个进程间通信组件,用于提供多应用间通信的解决方案. 进程间通信,分为客户端和服务端,俩端肯定会有些共性代码,所以加了个H3C.Channel.Core项目 因为之前还不太了解nuge ...
- [Pytorch框架]3.2 MNIST数据集手写数字识别
文章目录 3.2 MNIST数据集手写数字识别 3.2.1 数据集介绍 3.2.2 手写数字识别 3.2 MNIST数据集手写数字识别 import torch import torch.nn as ...
- 【Redis】常用命令介绍
一.Redis常用基本命令 官方文档:https://redis.io/commands/ 参考文档:http://redisdoc.com/ #可以使用help命令查看各redis命令用法[root ...
- 2021-08-24:合并石头的最低成本。有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的
2021-08-24:合并石头的最低成本.有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头.每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的 ...