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

比如这里把文件放到/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

完。 

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

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

相关文章

Python分析人民日报关于台湾的报道

【项目背景】 《人民日报》数据挖掘,时间:1949.10.1-2023.12.31 标题含有“台湾”的报道 需要以下内容 1、标题,即上述时间段的报道标题和相应的报道时间、版面 2、包含标题、时间、版面的所有报道内容 3、报道的年份和数量的趋势图 4、…

new mars3d.layer.BusineDataLayer({加载动态的.png图标

问题: 用BillboardEntity或者BusineDataLayer方法加载图标是静态的,如果用div的话,400个就会很卡顿 解决方案: 目前BillboardEntity加载是静态的,无法加载动图,网上搜了下,可以使用apngjs.js…

javaSE练习题(一)

1、BMI是根据体重测量健康的方式。通过以千克为单位的体重除以以米为单位的身高的平方计算出BMI。下面是16 岁以上人群的BMI图表: 编写一个java程序,提示用户输人以磅为单位的体重和以英寸为单位的身高,然后显示BMI值。注意: 1磅是0.453592 37千克而1英寸…

GPU云服务器的优势和应用

GPU即图形处理器,是一种高性能计算加速器,主要用于处理复杂的图像、视频等。GPU云服务器,指的是在云计算环境下,通过云平台提供GPU计算能力的虚拟服务器。随着科技的迅猛发展,科技领域对其的讨论和应用也日益热烈、广泛…

高德地图——轨迹回放和电子围栏

功能点 地图的初始化显示电子围栏(先初始化在调接口显示电子围栏)显示定位显示轨迹轨迹回放 (回放速度无法控制是因为高德地图的版本问题,不要设置版本,使用默认的即可生效)获取当前城市及天气情况设置地图样式坐标拾取器重点 默认当前城市地图加载完成的生命周期this.ma…

Linux课程____进程管理

记录工作日志 script 240319.log CTRLd 退出 cat 240319.log //查看 一、查看进程 1.静态 ps -aux ps -elf 2.动态 top 3.pgrep 查看特定条件的进程 pgrep -l “log” pgrep -l "ssh" pgrep -l -U redhat 4.pstree 查看进程树 pstree -aup 所有…

element plus等框架中属性值是组件如何传入,替换分页图标

在 Vue 中替换element plus 分页图标 正常写法引入组件 import prevIcon from /components/xx.vue;<el-pagination layout"prev, pager, next" :prev-icon"prevIcon" :total"5" />利用 h 函数写法 const prevIcon h(div, [xr]);可以写…

排序算法:归并排序(递归)

文章目录 一、归并排序的思路二、代码编写 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦&#xff01; 所属专栏:排序算法 一、归并排序的思路 单…

第二话 让屏幕显示想要的东西

上一话搭建了可说是可以开发了 接下来想办法 让 屏幕显示想要的东西 但是报错: ************************************************************************** * Looking for Adafruit_ILI9341.h dependency? Check our library registry! * * CLI > platformio lib se…

【DataWhale学习笔记-蝴蝶书共读】大语言模型背后

从图灵测试到ChatGPT 1950年&#xff0c;艾伦•图灵(Alan Turing)发表论文《计算机器与智能》&#xff08; Computing Machinery and Intelligence&#xff09;&#xff0c;提出并尝试回答“机器能否思考”这一关键问题。在论文中&#xff0c;图灵提出了“模仿游戏”&#xff…

AD软件中怎么添加不同元素之间的间距规则呢

AD软件中怎么添加不同元素之间的间距规则呢 答&#xff1a;AD软件提供了某一个元素针对其他元素之间的间距规则的设置。 首先执行菜单命令【设计】-【规则】或者快捷键DR打开规则约束编辑器&#xff0c;然后在间距规则Clearance里面添加一个新的规则&#xff0c;如图1所示 图…

阅读MySQL知识2

1、三大范式 2、DML 语句和 DDL 语句区别 3、主键和外键的区别 4、drop、delete、truncate 区别 5、基础架构 6、MyISAM 和 InnoDB 有什么区别&#xff1f; 7、推荐自增id作为主键问题 8、为什么 MySQL 的自增主键不连续 9、redo log 是做什么的? 10、redo log 的刷盘…

19---时钟电路设计

视频链接 时钟硬件电路设计01_哔哩哔哩_bilibili 时钟电路设计 晶振是数字电路的心脏&#xff0c;数字电路需要一个稳定的工作时钟信号&#xff0c;时钟电路至关重要&#xff01; 1、晶振概述 晶振一般指晶体振荡器。晶体振荡器是指从一块石英晶体上按一定方位角切下薄片&…

H6603实地架构降压芯片100V耐压 80V 72V 60V 48V单片机/模块供电应用

H6603 是一款内置功率 MOSFET降压开关转换器。在宽输入范围内&#xff0c;其最大持续输出电流 0.8A&#xff0c;具有极好的负载和线性调整率。电流控制模式提供了快速瞬态响应&#xff0c;并使环路更易稳定。故障保护包括逐周期限流保护和过温保护。H6603 最大限度地减少了现有…

传输层/UDP/TCP协议

再谈端口号 TCP/IP协议用“源IP”&#xff0c;“源端口号”&#xff0c;“目的IP”&#xff0c;“目的端口号”&#xff0c;“协议号”&#xff0c;这样一个五元组来标识一个通信&#xff08;可以用netstat -n来查看&#xff09;。 端口号的划分和知名端口号 我们之前就说过&am…

数据泄露问题怎么解决?迅软DSE加密软件助您守护重要信息

企业信息泄露的危害 企业数据泄露事件不仅给企业带来了经济损失和声誉损害&#xff0c;还可能导致用户个人信息的泄露&#xff0c;引起社会广泛关注。 因此&#xff0c;企业需要采取更加严格的数据保护措施&#xff0c;使用数据加密系统以防范潜在的数据泄露风险。同时&#…

每日一题——LeetCode1710.卡车上的最大单元数

方法一 排序贪心 能装的箱子数是有限的&#xff0c;那么就要使每个箱子里的单元数尽可能大&#xff0c;将数组按照单元数进行排序&#xff0c;优先装单元数最大的箱子&#xff0c;再考虑后面的箱子 var maximumUnits function(boxTypes, truckSize) {boxTypes.sort((a,b)>…

cocos 3.8开发 微信小游戏分包技巧压缩主包

Creator 版本&#xff1a; 3.8.2 目标平台&#xff1a;小游戏开发 压缩后 我不知道别人压缩几百kb是怎么做到的。不过哪个要钱。 我这个技巧不用花钱。 论坛有教程但是没有教详细怎么做。 开整&#xff01; 做一个空白的场景。然后写一个load脚本。load主场景。 从代码可…

腾讯音乐2023阵痛依旧:董事长彭迦信被“打脸”,月活持续减少

多项指标下滑&#xff0c;腾讯音乐2023年仍是喜忧参半。 3月19日&#xff0c;在线音乐与音频娱乐平台腾讯音乐娱乐集团&#xff08;TME&#xff0c;下称“腾讯音乐”&#xff0c; NYSE:TME、HK:01698&#xff09;发布截至2023年12月31日的2023年第四季度及全年未经审计财务业绩…

Google云计算原理与应用(四)

目录 七、海量数据的交互式分析工具Dremel&#xff08;一&#xff09;产生背景&#xff08;二&#xff09;数据模型&#xff08;三&#xff09;嵌套式的列存储&#xff08;四&#xff09;查询语言与执行&#xff08;五&#xff09;性能分析&#xff08;六&#xff09;小结 八、…