当前位置:   article > 正文

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

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

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

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

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

Dockerfile

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

  1. # 使用适合Oracle JDK 8的基础镜像
  2. FROM openjdk:8-jdk
  3. # 安装字体
  4. RUN apt-get update && apt-get install -y \
  5. fontconfig \
  6. fonts-dejavu \
  7. xfonts-100dpi \
  8. && rm -rf /var/lib/apt/lists/*
  9. # 确保/app目录存在
  10. RUN mkdir -p /app
  11. # 添加jar包到容器
  12. ADD wms-productV3.0.jar /app/wms-productV3.0.jar
  13. # 设置工作目录
  14. WORKDIR /app
  15. # 设置环境变量,如有需要
  16. # ENV ...
  17. # 开放8620端口
  18. EXPOSE 8620
  19. # 运行jar包
  20. CMD ["java", "-jar", "wms-productV3.0.jar"]

docker-compose.yml

  1. version: '3.8' # 指定 Docker Compose 文件版本
  2. services: # 定义应用程序由哪些服务组成
  3. mysql: # MySQL 数据库服务
  4. image: mysql:8 # MySQL 服务使用的 Docker 镜像
  5. environment: # 传递给容器的环境变量
  6. MYSQL_ROOT_PASSWORD: root # 设置 MySQL 的 root 密码
  7. MYSQL_DATABASE: jung_wms # 创建名为 jung_wms 的数据库
  8. command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password # MySQL 服务器配置
  9. volumes: # 将主机路径或命名卷挂载到容器中
  10. - ./mysql:/var/lib/mysql # 将 MySQL 数据持久化到主机目录
  11. - ./mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql:ro # 使用 SQL 脚本初始化数据库
  12. - ./my.cnf:/etc/mysql/conf.d/custom.cnf:ro # 自定义 MySQL 配置文件
  13. ports:
  14. - "3306:3306" # 在主机上公开 MySQL 的 3306 端口
  15. redis: # Redis 服务
  16. image: redis # Redis 服务使用的 Docker 镜像
  17. volumes:
  18. - ./redis:/data # 将 Redis 数据持久化到主机目录
  19. ports:
  20. - "6379:6379" # 在主机上公开 Redis 的 6379 端口
  21. nginx: # Nginx 网络服务器服务
  22. image: nginx # Nginx 服务使用的 Docker 镜像
  23. volumes:
  24. - ./nginx:/etc/nginx/conf.d # 将主机的 nginx 配置目录映射到容器中
  25. - ./app.conf:/etc/nginx/conf.d/app.conf:ro # 特定的 Nginx 应用配置文件
  26. - /xin/docker/jiaoZ/dist:/usr/share/nginx/html # 将主机的前端文件映射到 Nginx 容器中
  27. ports:
  28. - "80:80" # 在主机上公开 Nginx 的 80 端口
  29. app: # 应用服务
  30. build: # 构建 Docker 镜像的配置
  31. context: . # Docker 构建上下文目录
  32. dockerfile: Dockerfile # Dockerfile 文件名
  33. volumes:
  34. - ./app:/app # 应用源代码卷
  35. - ./wms-productV3.0.jar:/app/wms-productV3.0.jar:ro # 特定的应用 JAR 文件
  36. ports:
  37. - "8620:8620" # 在主机上公开应用的 8620 端口
  38. depends_on: # 指定服务之间的依赖关系
  39. - mysql
  40. - redis

app.conf 

  1. server {
  2. listen 80;
  3. location / {
  4. root /usr/share/nginx/html;
  5. index index.html index.htm;
  6. try_files $uri $uri/ /index.html;
  7. }
  8. location /ars/ { # 确保这里有结束的斜杠
  9. proxy_pass http://app:8620/; # 这会将匹配到的/ars/替换为这里的斜杠/
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_set_header X-Forwarded-Proto $scheme;
  14. }
  15. }

my.cnf

关闭lmysql区分表名大小写。

  1. [mysqld]
  2. 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

完。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/284577
推荐阅读
相关标签
  

闽ICP备14008679号