docker-compose部署django+nginx+minio

这篇具有很好参考价值的文章主要介绍了docker-compose部署django+nginx+minio。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

总体文件结构

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;
    }

}

 文章来源地址https://www.toymoban.com/news/detail-482163.html

到了这里,关于docker-compose部署django+nginx+minio的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3节点ubuntu24.04服务器docker-compose方式部署高可用elk+kafka日志系统并接入nginx日志

    节点名称 IP 部署组件及版本 配置文件路径 机器CPU 机器内存 机器存储 Log-001 10.10.100.1 zookeeper:3.4.13 kafka:2.8.1 elasticsearch:7.7.0 logstash:7.7.0 kibana:7.7.0 zookeeper:/data/zookeeper kafka:/data/kafka elasticsearch:/data/es logstash:/data/logstash kibana:/data/kibana 2*1c/16cores 62g 50g 系统 800g 数据盘 Log-002 10.10.10

    2024年04月27日
    浏览(43)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(52)
  • 【docker-compose】【nginx】动态配置

    需求:部署前端镜像时需要动态修改nginx反向代理的后端服务的ip地址 原.conf配置调整,改为嵌入变量的文件模版 Dockerfile 修改,通过envsubst将换将变量注入模版后再运行nginx docker-compose配置,通过environment动态修改变量 动态变量: ${MY_IP} 如果有多个变量可用逗号隔开, envsu

    2024年02月10日
    浏览(48)
  • 使用docker-compose做nginx服务

    目录 Docker Compose 可以轻松、高效的管理容器, 它是一个用于定义和运行多容器 Docker 的应用程序工具. 除了docker Compose还有一个技术k8s也能实现快速的部署。 可以一键启动,一键停止,非常方便 一.上传nginx配置文件 二.docker-compose安装与配置 1.上传文件 2.添加可执行权限 3.创建

    2024年02月10日
    浏览(38)
  • 【docker-compose】【nginx】内网环境https配置

    在部署服务器上,新建cert目录,执行以下指令,然后生成.crt和.key文件 -days 3650:设置为10年 10.1.58.5:修改为服务器ip 在原来的配置上新增ssl配置,可使用任意端口, listen 后注意增加 ssl 为了便于前端vue项目容器化部署,将服务器 cert 目录与容器内 /etc/nginx/cert 关联

    2024年01月16日
    浏览(42)
  • docker-compose的部署

    目录 一、compose的概述 1.1 yaml的概述 1.2 yaml的数据结构 1.2.1 docker composeyml文件的常用手段 1.3 docker compose 1.4 yml文件编写  二、部署compose 2.1 下载docker-compose安装包  2.2 部署docker-compose 2.3 部署docker-compose 2.4 开启验证  三、compose编排安装tomcat容器 总结 compose是docker官网开发的,

    2024年02月01日
    浏览(51)
  • 通过 docker-compose 搭建高可用 nginx + keepalived 集群

    两台虚拟机 CentOS Linux release 7.9.2009 (Core) Docker version 23.0.1 Docker-compose version 1.25.0-rc4 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实现基础。 VRRP(

    2024年02月04日
    浏览(43)
  • Docker-Compose编排与部署

    目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境          Docker Compose 的前身是 Fig,它是一个 定义及运行多个 Docker 容器的工具 。可以使用 YAML 文件来配置应用程序的服

    2024年02月14日
    浏览(47)
  • 四十六、docker-compose部署

    一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器,快速的部署项目。 使用docker-compose部署主要是编写docker-compose.yml脚本。 不论是Dockerfile还是docker-compose.yml脚本的编写都依赖上下文,所以需要明确部署文

    2023年04月19日
    浏览(40)
  • docker-compose部署milvus

    上一篇介绍了使用kubernetes来部署milvus,这篇介绍下使用docker-compose来部署milvus。 下载docker-compose 下载最新版的 docker-compose-linux-x86_64 在服务器上使用 安装docker-compose 将docker拷贝到/usr/local/bin目录下,重命名为 docker-compose 默认下载下来的文件只有读写权限,使用 chmod +x docker-

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包