铭飞MS部署docker-compose方式

news2024/12/27 17:28:58

官网文档只有docker部署文档,给了一点启发,在此上部署一下用docker-compose,出个教程,方便大家学习

version: '3'

services:
  nginx-web:
    image: nginx:1.21.3
    container_name: nginx-web
    environment:
      # 时区上海
      TZ: Asia/Shanghai
    ports:
      - "80:80"
      - "8080:8080"
      - "8585:8585"
      - "8181:8181"
      - "443:443"
    volumes:
      # 证书映射
      - /etc/letsencrypt:/etc/nginx/cert
      - /opt/docker/nginx/certbot:/usr/share/certbot/www
      # 配置文件映射
      - /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      # 日志目录
      - /opt/docker/nginx/log:/var/log/nginx
    privileged: true
    restart: always
    networks:
      - kxmall_net

  mysql:
    container_name: mysql57
    image: mysql:5.7.31
    ports:
      - 3306:3306
    privileged: true
    volumes:
      - $PWD/mysql57/log:/var/log/mysql
      - $PWD/mysql57/conf/my.cnf:/etc/mysql/my.cnf
      - $PWD/mysql57/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "xxxxxxx"
    command: [
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_general_ci',
        '--max_connections=3000'
    ]
    restart: always
    networks:
      kxmall_net:
        ipv4_address: 172.30.0.59


  ms-mcms:
    container_name: ms-mcms
    image: anapsix/alpine-java:8
    environment:
      # 时区上海
      TZ: Asia/Shanghai
    volumes:
      # 配置文件
      - /opt/docker/server/logs/:/ms/server/logs/
      - /opt/docker/server/mcms:/home
    working_dir: /home
    command: java -jar ms-mcms.jar
    privileged: true
    restart: always
    networks:
      kxmall_net:
        ipv4_address: 172.30.0.60

networks:
  kxmall_net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.30.0.0/16

其中,nginx的配置文件内容

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    client_max_body_size 10M;  # 设置为10MB
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
       listen       80;
       server_name  a.xxxx.vip;
	   try_files $uri $uri/ /index.html;
        # Load configuration files for the default server block.
       include /etc/nginx/default.d/*.conf;
	   gzip  on;
	   gzip_min_length  1k;
	   gzip_buffers     4 16k;
	   gzip_http_version 1.1;
	   gzip_comp_level 9;
	   gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
	   gzip_disable "MSIE [1-6]\.";
	   gzip_vary on;
        error_page 404 /404.html;
        location = /404.html {
        }

	    location / {
                     proxy_set_header Host $http_host;
                     proxy_set_header X-Real-IP $remote_addr;
                     proxy_set_header REMOTE-HOST $remote_addr;
                     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                     proxy_pass http://server/;
        }

       location ~ /(static/mdiy) {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Credentials true;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }


    upstream server {
            ip_hash;
            server 172.30.0.60:8080;
    }


	server {
        listen       443 ssl;
        server_name  a.kxmall.vip;
	   # 配置服务器证书
        ssl_certificate  /etc/nginx/cert/live/a.xxx.vip/fullchain.pem;
        # 配置服务器私钥
        ssl_certificate_key /etc/nginx/cert/live/a.xxx.vip/privkey.pem;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;


        location / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_pass http://server/;
        }

       location ~ /(static/mdiy) {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Credentials true;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

其中,mysql的my.cnf文件

#!/bin/bash
mkdir -p /opt/mysql57/{conf,data,log}  #创建本地文件夹


#新建配置文件
tee /opt/mysql57/conf/my.cnf<<-'EOF'
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
lower_case_table_names=1 #实现mysql不区分大小(开发需求,建议开启)
# By default we only accept connections from localhost
bind-address   = 0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
default-time_zone = '+8:00'

# 更改字符集 如果想Mysql在后续的操作中文不出现乱码,则需要修改配置文件内容
symbolic-links=0
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

EOF

项目结构

第一步:启动mysql,导入脚本

第二步:启动所有程序即可

第三步:如果访问不了,可以看下服务器的端口,安全组是否有开通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移远通信推出大模型解决方案,重塑千行百业智能边界

近来&#xff0c;具有强大学习、理解和多模态处理能力的大模型迅猛发展&#xff0c;正在给人类的生产、生活带来革命性的变化。在这一变革浪潮中&#xff0c;物联网成为了大模型技术发挥作用的重要阵地。 作为全球领先的物联网整体解决方案供应商的移远通信&#xff0c;于近日正…

深入理解GPU内存分配:机器学习工程师的实用指南与实验

给定一个模型架构、数据类型、输入形状和优化器,你能否计算出前向传播和反向传播所需的GPU内存量?要回答这个问题,我们需要将流程分解为基本组件,并从底层理解内存需求。以下实验(可以在Google Colab上运行)将帮助你理解核心概念。 预留与分配 PyTorch预留了更多内存,但只分…

Gradle安装保姆级教程

Gradle安装教程 1. 下载 Gradle 官网&#xff1a;https://gradle.org 点击 Install Gradle 8.10 两个选择一个安装 2. 安装 下载好后解压即可 3.配置 3.1 配置环境遍历 GRADLE_HOMED:\env\gradle\gradle-8.10 # 此处填写自己放置的位置然后加入到系统变量的path中 %GRADL…

SCDN:网络安全新伙伴,内附场景使用解决方案

在数字化时代&#xff0c;随着网络应用的普及与复杂化&#xff0c;CDN&#xff08;内容分发网络&#xff09;作为提升网站访问速度与用户体验的关键技术&#xff0c;已经成为众多企业和个人站长的首选。然而&#xff0c;面对日益严峻的网络攻击威胁&#xff0c;如DDoS攻击、CC攻…

SparkSQL缓存的用法

前言 SparkSQL关于缓存的操作语句官方给了三种: CACHE TABLE(缓存表)UNCACHE TABLE(清除指定缓存表)CLEAR CACHE(清除所有缓存表)下面我们详细讲解这些语句的使用方法。 CACHE TABLE CACHE TABLE 语句使用给定的存储级别缓存表的内容或查询的输出。如果一个查询被缓存…

autosub:安装与使用

https://www.zhihu.com/question/662188521/answer/3607536719 题目描述&#xff1a;拿到了一段mp4文件。尝试了一下ffmpeg&#xff0c;发现里面没有字幕流。现在需要的是导出他的字幕。 搜索了一下&#xff0c;发现有很多公司有相关的产品。但是无一例外都是要付费的&#x…

计算机网络面试真题总结(六)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 网络五层模型分别负责什么&#xff1f; 物理层&#xff1a; 负责把…

Day48 | 107.寻找存在的路径

语言 Java 107.寻找存在的路径 题目 107. 寻找存在的路径 题目描述 给定一个包含 n 个节点的无向图中&#xff0c;节点编号从 1 到 n &#xff08;含 1 和 n &#xff09;。 你的任务是判断是否有一条从节点 source 出发到节点 destination 的路径存在。 输入描述 第一…

最适合企业的财务管理软件:10款热门推荐

文中介绍的财务管理软件工具有&#xff1a;合思、金财管家、金蝶EAS、鼎捷易成、速达3000、畅捷通T、东软财务软件、Xero、Wave、FreshBooks。 在如今这个信息爆炸的时代&#xff0c;市场上有太多选择&#xff0c;每款财务管理软件都声称自己是最好的&#xff0c;但究竟哪一款才…

基于mallat小波变换的图像分解和重建算法matlab仿真,对比不同分解层数图像重建质量

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

.NET 给NuGet包添加Readme

前言 当我们编写了一个NuGet包后&#xff0c;NuGet包的说明会非常重要 我们以之前IX.RCL.Front 这个项目为例 1.添加Readme.md 在项目根目录 添加 Readme.md 文件属性中 生成操作 修改为&#xff1a;内容 2. 在Readme.md中添加 我们想给使用者 的提示 3.生成一个新版本的…

计算机毕业设计选题推荐-农村产权交易与数据可视化平台-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

修改原神角色数据列表:更好用了

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原神角色数据列表</title><link rel&qu…

教你从零开始构建大模型!《Python 机器学习》作者新书来了!

自 ChatGPT发布以来&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经成为推动人工智能发展的关键技术。 近期&#xff0c;机器学习和 AI 研究员、畅销书《Python 机器学习》作者 Sebastian Raschka又写了一本新书 ——《Build a Large Language Model (From Scratch)…

Qt_信号槽机制

文章目录 Qt中的信号槽机制1.在widget.h添加处理函数的声明2.添加处理函数的定义3.建立信号和槽的连接4.运行 Qt中的信号槽机制 本质就是给按钮的点击操作&#xff0c;关联上一个处理函数&#xff0c;当用户点击的时候&#xff0c;就会执行这个处理函数。 函数&#xff1a;stat…

string类(3)

string类&#xff08;3&#xff09; push_back 这是尾插一个字符。 append 这是尾插字符串。可以看出来设计得很复杂。 实践中比较常用的是&#xff1a; string s("hello world"); s.push_back( ); s.push_back(x); s.append("zzzzzzzz");用得更多的是&…

PHP移动端商城程序多端支付全端分享系统小程序源码

&#x1f4f1;&#x1f4b0;「移动端商城多端支付全端分享系统」——打造无缝购物新体验&#xff01;&#x1f6cd;️✨ &#x1f680; 开篇&#xff1a;一键触达&#xff0c;购物无界&#xff01; 在这个快节奏的时代&#xff0c;购物也需要跟上步伐&#xff01;&#x1f3c…

PY信号和槽

知不足而奋进 望远山而前行 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 在使用PyQt进行图形用户界面&#xff08;GU…

【网络】数据链路层-MAC帧

数据链路层-以太网与ARP协议 文章目录 1.数据链路层2.以太网2.1什么是以太网2.2MAC帧格式 3.ARP协议3.1为什么有ARP协议&#xff1f;3.2ARP的定位3.3ARP协议工作流程3.4ARP数据格式 4.RARP协议 1.数据链路层 数据链路层是网络协议栈中最底层的内容&#xff0c;而在之前对其他…

重装系统前如何备份数据?让重装无后顾之忧

在日常使用电脑的过程中&#xff0c;有时我们可能需要重装系统以解决一些难以通过常规手段解决的问题。然而&#xff0c;在重装系统之前&#xff0c;最重要的一步就是备份数据&#xff0c;以防止重要信息的丢失。本文将详细介绍如何在重装系统前进行数据备份&#xff0c;确保您…