当前位置: 首页 > news >正文

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

完。 

http://www.lryc.cn/news/322661.html

相关文章:

  • Java项目开发之fastjson详解
  • 面试算法-62-盛最多水的容器
  • 【智能算法】海洋捕食者算法(MPA)原理及实现
  • 刷题DAY24 | LeetCode 77-组合
  • Spring Boot为什么默认使用CGLIB动态代理
  • 算法详解——Dijkstra算法
  • 利用GANs进行图像生成
  • Flutter-底部弹出框(Widget层级)
  • 聚焦两会:数字化再加速,VR全景助力制造业转型
  • 数据挖掘之关联规则
  • java:java.util.BitSet对象的Jackson序列化和反序列化实现
  • Go语言学习01-基本程序结构
  • rundeck k8s部署踩坑
  • 每天学习几道面试题|Kafka(二)架构设计类
  • Spring 实现 OAuth2 授权之解决方案
  • el-select使用filterable下拉无法关闭得问题
  • 基于javaweb(springboot)城市地名地址信息管理系统设计和实现
  • vue iframe实现父页面实时调用子页面方法和内容
  • HarmonyOS ArkTS 开发基础/语言
  • AI大模型学习
  • 2024年【T电梯修理】考试内容及T电梯修理作业考试题库
  • 2.vscode 配置python开发环境
  • [蓝桥杯 2015 省 B] 生命之树
  • 为什么Hashtable不允许插入nuIl键和null值?
  • 【WPF应用4】WPF界面对象编辑
  • js数组去重常见方法
  • 【Java Web基础】一些网页设计基础(二)
  • python中tkinter计算器
  • [嵌入式系统-39]:龙芯1B 开发学习套件 -9-PMON的文件结构
  • [蓝桥杯2012] 罗马数字