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/ ...
随机推荐
- unable to find Qt5Core.dll on PATH(已解决,超简单)
不久之前我在引用PyQt5库的时候总是出现unable to find Qt5Core.dll on PATH的错误,错误如下: 百度上都是说什么打包的时候出错,然后加上一句话,我试过以后也不行,后来 ...
- RochyLinux 8.6安装Oracle19c Client
一.环境准备 1.1 软件下载 下载地址:https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html 其中c ...
- iOS 深色模式适配
要求:iOS13.0以上 重点:需要所有界面进行适配,工作量巨大,需要从项目开始就进行适配:H5界面无法进行适配 实现方式:System Colors(常用).Semantic Colors(常用). ...
- ACM-刷题记录-14届NEFU校赛
P2031凯撒密码 #include<bits/stdc++.h> using namespace std; int main(){ string s; int d; while(cin& ...
- day06 循环和数据类型的内置方法
循环加数据类型的内置方法 while 循环 for循环 range关键字 数据类型的内置方法 字符串的内置方法 while循环 while + continue #打印0-10的数字不打印6 n=0 ...
- FTP FileZilla 425 Can't open data connection for transfer of "/" 错误: 读取目录列表失败
如图所示: 在谷歌百度搜了很多资料都没有解决,主动被动模式端口入站规则什么能设置的都设置了结果还是不行,尝试换了一个软件用了FTP Rush就直接可以连上了. 具体原因有空再查找吧,目前问题算是解决了 ...
- 【Spring注解驱动】(三)Servlet 3.0
前言 今天是7.21日,终于是看完了..暑假在家学习是真的差点意思 1 Servlet 3.0简介 Servlet 2.0是在web.xml中配置servlet filter.listener.Dis ...
- Spring源码系列(补充):详解ApplicationContext
前言 在之前的文章中,我们已经对Spring源码中的一些核心概念进行了分析.由于篇幅限制,我们并没有详细解释ApplicationContext类所继承的父接口及其作用.因此,本文将单独为Applic ...
- [OpenCV-Python] 20 图像金字塔
文章目录 OpenCV-Python:IV OpenCV中的图像处理 20 图像金字塔 20.1 原理 20.2 使用金字塔进行图像融合 OpenCV-Python:IV OpenCV中的图像处理 2 ...
- SRIO接口卡航电总线解决方案
TES600是天津拓航科技的一款基于FPGA与DSP协同处理架构的通用高性能实时信号处理平台,该平台采用1片TI的KeyStone系列多核浮点/定点DSP TMS320C6678作为主处理单元,采用1 ...