docker-compose一键部署若依前后端分离版本

比如这里把文件放到/xin/docker/jiaoZ/的目录下,jar包和下面的配置文件都放在这个文件夹下。

注意要把jar端口改为你实际启动的,映射端口也可以改为你想要的。

这里的映射端口为:nginx监听80端口,jar在8620端口,mysql在3306端口,redis在6379端口。

Dockerfile

如果这里不安装字体,若依登录时的验证码会显示不出来!

# 使用适合Oracle JDK 8的基础镜像
FROM openjdk:8-jdk

# 安装字体
RUN apt-get update && apt-get install -y \
    fontconfig \
    fonts-dejavu \
    xfonts-100dpi \
    && rm -rf /var/lib/apt/lists/*

# 确保/app目录存在
RUN mkdir -p /app

# 添加jar包到容器
ADD wms-productV3.0.jar /app/wms-productV3.0.jar

# 设置工作目录
WORKDIR /app

# 设置环境变量,如有需要
# ENV ...

# 开放8620端口
EXPOSE 8620

# 运行jar包
CMD ["java", "-jar", "wms-productV3.0.jar"]

docker-compose.yml

version: '3.8'  # 指定 Docker Compose 文件版本

services:  # 定义应用程序由哪些服务组成

  mysql:  # MySQL 数据库服务
    image: mysql:8  # MySQL 服务使用的 Docker 镜像
    environment:  # 传递给容器的环境变量
      MYSQL_ROOT_PASSWORD: root  # 设置 MySQL 的 root 密码
      MYSQL_DATABASE: jung_wms  # 创建名为 jung_wms 的数据库
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password  # MySQL 服务器配置
    volumes:  # 将主机路径或命名卷挂载到容器中
      - ./mysql:/var/lib/mysql  # 将 MySQL 数据持久化到主机目录
      - ./mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql:ro  # 使用 SQL 脚本初始化数据库
      - ./my.cnf:/etc/mysql/conf.d/custom.cnf:ro  # 自定义 MySQL 配置文件
    ports:
      - "3306:3306"  # 在主机上公开 MySQL 的 3306 端口

  redis:  # Redis 服务
    image: redis  # Redis 服务使用的 Docker 镜像
    volumes:
      - ./redis:/data  # 将 Redis 数据持久化到主机目录
    ports:
      - "6379:6379"  # 在主机上公开 Redis 的 6379 端口

  nginx:  # Nginx 网络服务器服务
    image: nginx  # Nginx 服务使用的 Docker 镜像
    volumes:
      - ./nginx:/etc/nginx/conf.d  # 将主机的 nginx 配置目录映射到容器中
      - ./app.conf:/etc/nginx/conf.d/app.conf:ro  # 特定的 Nginx 应用配置文件
      - /xin/docker/jiaoZ/dist:/usr/share/nginx/html  # 将主机的前端文件映射到 Nginx 容器中
    ports:
      - "80:80"  # 在主机上公开 Nginx 的 80 端口

  app:  # 应用服务
    build:  # 构建 Docker 镜像的配置
      context: .  # Docker 构建上下文目录
      dockerfile: Dockerfile  # Dockerfile 文件名
    volumes:
      - ./app:/app  # 应用源代码卷
      - ./wms-productV3.0.jar:/app/wms-productV3.0.jar:ro  # 特定的应用 JAR 文件
    ports:
      - "8620:8620"  # 在主机上公开应用的 8620 端口
    depends_on:  # 指定服务之间的依赖关系
      - mysql
      - redis

app.conf 

server {
    listen 80;

   location / {
       root /usr/share/nginx/html;
       index index.html index.htm;
       try_files $uri $uri/ /index.html;
   }

    location /ars/ { # 确保这里有结束的斜杠
        proxy_pass http://app:8620/; # 这会将匹配到的/ars/替换为这里的斜杠/
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

my.cnf

关闭lmysql区分表名大小写。

[mysqld]
lower_case_table_names=1

mysql-init.sql

初始化的sql,比如这里创建jung_wms数据库

CREATE DATABASE IF NOT EXISTS jung_wms;

启动程序 

docker-compose up --build

发现启动后,因为app.jar启动的慢,nginx启动的快,所以nginx访问app时就访问不到,异常退出了,所以等jar包启动之后,手动启动一下nginx就可以了,下面是命令。

新开一个窗口运行下面命令,名称改为你nginx的。

docker restart jiaoz-nginx-1

完。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ProtoBuf-gRPC实践

目录介绍 01.gRPC学习背景 1.1 为什么要学RPC1.2 RPC是什么1.3 网络库收益分析1.4 学习计划说明1.5 学习问题思考 02.ProtoBuf的介绍 2.1 ProtoBuf是什么2.2 ProtoBuf和json2.3 ProtoBuf问题思考2.4 ProtoBuf特点2.5 ProtoBuf存储格式2.6 ProtoBuf优缺点2.7 创建proto文件2.8 …

HashMap设置初始容量为17,那么它的实际容量是多少?

典型回答 即使初始化 HashMap 的容量为 17,那么它的实际容量却是 32。 这是因为 HashMap 的容量只能为 2 的 N次方,这是 HashMap 的源代码中的实现,无论用户输入的是多少,它总会通过计算,得到第一个比他大的2的N 次方…

SPI读写学习

走到初衷使用STM32的地方,例子是读写W25Q,但是手上没有25Q,只有一个SPI接口的SD卡。在UNO上已经实验OK,线接好后,发现SD卡里有个寄存器转换表,跟例子的SPI接口不一样,要改的太多。 u32 SPI_FLAS…

15|BabyAGI:根据气候变化自动制定鲜花存储策略

一种新型的代理——Autonomous Agents(自治代 理或自主代理), 在 LangChain 的代理、工具和记忆这些组件的支持下,它们能够在无需外部干预的情况下自主 运行,这在真实世界的应用中具有巨大的价值。 AutoGPT 它的主要…

Win11用户必备:轻松将右键菜单改回Win10的几种方法

Win11系统的右键菜单相较于Win10系统有所改变,许多用户可能更喜欢Win10系统的样式。下面小编将分享几种方法,帮助用户将Win11的右键菜单恢复为Win10的风格。这些方法简单易行,用户只需按照步骤进行操作即可完成设置,让Win11电脑上…

Flutter 初始WidgetState 简单应用案例分析

本系列文章主要整理Flutter的知识汇总,由浅入深,从Widget的搭建到其中的原理。本文还是围绕Widget在开发中应用和理解。 关于Flutter环境配置和首次创建可以参考前面文章。链接如下: Flutter 安装部署与认识Dart语言 Flutter 使用AndroidS…

湖北省地质灾害分布数据 崩塌滑坡泥石流空间分布地质灾害详查等数据集

地质灾害是指在自然或者人为因素的作用下形成的,对人类生命财产造成的损失、对环境造成破坏的地质作用或地质现象。地质灾害在时间和空间上的分布变化规律,既受制于自然环境,又与人类活动有关,往往是人类与自然界相互作用的结果。…

代码随想录算法训练营第day36|435. 无重叠区间 、 763.划分字母区间 、 56. 合并区间

目录 435. 无重叠区间 763.划分字母区间 56. 合并区间 435. 无重叠区间 力扣题目链接(opens new window) 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] …

vue3实现输入框短信验证码功能---全网始祖

组件功能分析 1.按键删除,清空当前input,并跳转prevInput & 获取焦点,按键delete,清空当前input,并跳转nextInput & 获取焦点。按键Home/End键,焦点跳转first/最后一个input输入框。ArrowLeft/ArrowRight键点击…

【日常记录】【插件】使用 html2canvas增加水印

文章目录 1、需求2、html2canvas3、实现4、参考链接 1、需求 实际开发中,经常需要将网页元素转换为图片,以便进行保存、分享或打印等用途。,一般想到的方案就是canvas 比如这个,需要把这个DOM转化成一个图片 2、html2canvas html2canvas 可以把DOM结构转…

vivado 物理优化约束、交互式物理优化

物理优化约束 Vivado Design Suite在物理优化过程中尊重DONT_TOUCH特性。它不在具有这些属性的网络或小区上执行物理优化。要加快网络选择过程中,具有DONT_TOUCH属性的网络经过预过滤,不被考虑用于物理优化。此外,还遵守Pblock分配&#xff…

ClickHouse--13--springboot+mybatis配置clickhouse

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ClickHouse1.添加maven依赖2.配属数据源3.参数配置4.Druid连接池配置5.entity6.Mapper接口7.Mapper.xml8.controller接口9.创建一个clickhouse表10.测试 ClickHouse…

MySQL数据库概念及MySQL的安装

文章目录 MySQL数据库一、数据库基本概念1、数据2、数据表3、数据库4、数据库管理系统(DBMS)4.1 数据库的建立和维护功能4.2 数据库的定义功能4.3 数据库的操纵功能4.4 数据库的运行管理功能4.5 数据库的通信功能(数据库与外界对接&#xff0…

网络简略总结

目录 一、三次握手 四次挥手 1、三次握手:为了建立长链接进行交互即建立一个会话,使用http/https协议 2、四次挥手是一个断开连接释放服务器资源的过程 3、如果已经建立了连接,但是客户端突然出现故障了怎么办? 4、谁可以中断连接?客户端还是服务端还是都可以? 5、…

小朋友排队(蓝桥杯,acwing,归并)

题目描述: n 个小朋友站成一排。 现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。 开始的时候,所有小朋友的不高兴程度都是 0。 如果某个小朋友第一次被要求交换&#…

解决NameError:name ‘file‘ is not defined 方法

方法1: import os base_diros.path.dirname(os.path.realpath(_file_) print(base_dir)方法2: import os base_diros.getcwd() print(base_dir)

PTA一笔画

作者 张志梅 单位 青岛大学 小丁最近迷恋上一个游戏,传说中的“一笔画”游戏。 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图。一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复…

SAR ADC系列6——比较器输入失调电压仿真

ADC中比较器输入失调电压的仿真方法 比较器输入端输入一个共模电平(1.65V),一个斜坡信号(1.64V-1.66V) 时序大概长下面这样 测量在发生翻转时的输入电压之间的差值,进行多次蒙特卡洛的仿真 用公式计算发…

【DNDC模型】土壤碳储量、温室气体排放、农田减排、土地变化、气候变化

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到,要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时,提到要把减污降碳协同增效作为促…

mapstruct学习笔记-pojo之间的转换

1、前言 mapstruct中常用注解如Mapping,AfterMapping,BeanMapping等的使用,通过案例说明各式各样的业务pojo对象之间如何借助mapstruct完成相互之间的转换,减少代码量的同时也能突出业务逻辑流程,让你的代码里写起来更有规范可言。 2、简介 Reference Guide – MapStruct 3…