后端部署

数据库:

redis部署:

拉取镜像:

doker pull redis

运行容器:

docker run -d -p 6379:6379 --name my_redis redis

 mysql部署:

拉取镜像:

docker pull mysql

运行容器:我这里3306被占了就用的39001映射

docker run -d -p 39001:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_01 mysql

 利用workbench测试连接并将要用到的数据库表从本地数据库导入

yml文件配置修改

1.将数据库连接改为刚刚部署的,运行端口也可以按需更改

2.执行maven clean,再执行maven package 命令会生成target目录,里面有一个jar包 

 

3.在服务器上找个好位置放你的jar包,我是在home目录下创了/home/opt/dockerfiles目录,然后在这里创一个backend目录 mkdir backend,利用ftp将你的jar包上传上去,利用xftp直接拖过去就可以

 4.然后创建Dockerfile文件开始构建镜像

vim Dockerfile

Dockerfile文件如下,注意命令是大写 

FROM openjdk:17-jdkLABEL maintainer="px<318155349@qq.com>" ADD *.jar app.jar
EXPOSE 39001
CMD ["java" , "-jar", "/app.jar"]

然后构建镜像,执行下面指令

# 命令 docker build -f dockerfile文件路径 -t 镜像名:[tag]
root@iZbp1g3eaopeeodxj2dzqdZ:/home/opt/dockerfiles/backend# docker build -f Dockerfile -t sugarcane-backend .

利用构建的镜像创建容器并运行

root@iZbp1g3eaopeeodxj2dzqdZ:/home/opt/dockerfiles/backend# docker run -d -p 39002:39001 --name backend sugarcane-backend

这个时候可以在浏览器访问后端服务测试部署是否成功

前端部署 

这里采用nginx代理

nginx部署:

拉取镜像:

docker pull nginx

首先要将nginx的默认配置复制一份到主机

# 创建宿主机目录并自动填充默认配置
mkdir -p /usr/local/nginx/conf
docker run --rm nginx cat /etc/nginx/nginx.conf > /usr/local/nginx/conf/nginx.conf

 然后启动容器并挂载数据卷

docker run -d --restart=always --privileged=true --name px_nginx -p 39003:80 \
-v /usr/local/nginx/cert:/etc/nginx/cert \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/log:/var/log/nginx \
nginx

可以通过docker inspect px_nginx命令查看mounted下挂载的数据卷

 前端打包:

1.运行 npm run build 命令将前端打成dist

2.将dist上传到宿主机 /usr/local/nginx/html下

跟前面后端jar包上传一样

3.修改nginx.conf配置文件

root@iZbp1g3eaopeeodxj2dzqdZ:/usr/local/nginx/conf# vim nginx.conf

 修改后的conf文件如下:

需要注意的是如下规则,按你项目需求选择

http://backend:39001/剥离 location 匹配的前缀,将剩余部分追加到代理地址后代理到 http://backend:39001/user
http://backend:39001保留 location 匹配的前缀,完整路径追加到代理地址后代理到 http://backend:39001/api/user
    default_type  application/octet-stream;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;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;server {listen 80;//容器内的端口server_name 121.40.170.98//服务器地址charset utf-8;location / {root /usr/share/nginx/html/dist; #前端工程存放路径,注意这里的路径是容器内的,不是宿主机的try_files $uri $uri/ /index.html;index index.html index.htm;}location /api {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://121.40.170.98:39002; # 后端项目的发布地址加端口}location /auth {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://121.40.170.98:39002; # 后端项目的发布地址加端口}}
}

4.重启nginx容器使配置生效

root@iZbp1g3eaopeeodxj2dzqdZ:/usr/local/nginx/conf# docker restart px_nginx

然后就可以访问39003(按你设置的端口映射来)

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv11调参指南

YOLOv11调参 1. YOLOv11参数体系概述 YOLOv11作为目标检测领域的前沿算法&#xff0c;其参数体系可分为四大核心模块&#xff1a; 模型结构参数&#xff1a;决定网络深度、宽度、特征融合方式训练参数&#xff1a;控制学习率、优化器、数据增强策略检测参数&#xff1a;影响预测…

云原生核心技术解析:Docker vs Kubernetes vs Docker Compose

云原生核心技术解析&#xff1a;Docker vs Kubernetes vs Docker Compose &#x1f6a2;☸️⚙️ 一、云原生核心概念 ☁️ 云原生&#xff08;Cloud Native&#xff09; 是一种基于云计算模型构建和运行应用的方法论&#xff0c;核心目标是通过以下技术实现弹性、可扩展、高可…

keepalive模拟操作部署

目录 keepalived双机热备 一、配置准备 二、配置双机热备&#xff08;基于nginx&#xff09; web1端 修改配置文件 配置脚本文件 web2端 修改配置文件 配置脚本文件 模拟检测 开启keepalived服务 访问结果 故障模拟 中止nginx 查看IP 访问浏览器 重启服务后…

Java 中的 volatile 是什么?

&#x1f449; volatile &#xff1a;不稳定的 英[ˈvɒlətaɪl] 美[ˈvɑːlətl] adj. 不稳定的;<计>易失的;易挥发的&#xff0c;易发散的;爆发性的&#xff0c;爆炸性的;易变的&#xff0c;无定性的&#xff0c;无常性的;短暂的&#xff0c;片刻的;活泼的&#xff…

MongoDB性能优化实战指南:原理、实践与案例

MongoDB性能优化实战指南&#xff1a;原理、实践与案例 在大规模数据存储与查询场景下&#xff0c;MongoDB凭借其灵活的文档模型和水平扩展能力&#xff0c;成为众多互联网及企业级应用的首选。然而&#xff0c;在生产环境中&#xff0c;随着数据量和并发的增长&#xff0c;如何…

细谈kotlin中缀表达式

Kotlin 是一种适应你编程风格的语言&#xff0c;允许你在想什么时候写代码就什么时候写代码。Kotlin 提供了一些机制&#xff0c;帮助我们编写易读易懂的代码。其中一个非常有趣的机制是 中缀表达式&#xff08;infix notation&#xff09;。它允许我们定义和调用函数时省略点号…

[Nagios Core] CGI接口 | 状态数据管理.dat | 性能优化

链接&#xff1a;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/ docs&#xff1a;Nagios Core Nagios Core 是功能强大的基础设施监控系统&#xff0c;包含 CGI 程序&#xff0c;允许用户通过 Web 界面查看当前状态、历史记录等。通过以下技术栈实现…

Linux进程优先级机制深度解析:从Nice值到实时调度

前言 在Linux系统中&#xff0c;进程优先级决定了CPU资源的分配顺序&#xff0c;直接影响系统性能和关键任务的响应速度。无论是优化服务器负载、确保实时任务稳定运行&#xff0c;还是避免低优先级进程拖慢系统&#xff0c;合理调整进程优先级都是系统管理和性能调优的重要技能…

深入浅出Kafka Broker源码解析(下篇):副本机制与控制器

一、副本机制深度解析 1.1 ISR机制实现 1.1.1 ISR管理核心逻辑 ISR&#xff08;In-Sync Replicas&#xff09;是Kafka保证数据一致性的核心机制&#xff0c;其实现主要分布在ReplicaManager和Partition类中&#xff1a; public class ReplicaManager {// ISR变更集合&#xff0…

Fluent许可文件安装和配置

在使用Fluent软件进行流体动力学模拟之前&#xff0c;正确安装和配置Fluent许可文件是至关重要的一步。本文将为您提供详细的Fluent许可文件安装和配置指南&#xff0c;帮助您轻松完成许可文件的安装和配置&#xff0c;确保Fluent软件能够顺利运行。 一、Fluent许可文件安装步骤…

Python----大模型( RAG的文本分割,文本分割方法 )

一、RAG文本分割RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;模型是一种结合了检索 和生成能力的自然语言处理模型。 它通过检索相关的文档片段&#xff0c;并将这些信息作为生成过程的上下文&#xff0c;以提高生成质量 和准确性。在R…

vue笔记3 VueRouter VueX详细讲解

vueRouter & vueX 看到这里的朋友如果没有看过前几期&#xff0c;可以通过文章的链接跳转到第一期&#xff0c;从第一期的 vue2 语法开始学习&#xff0c;如果是复习的朋友&#xff0c;也可以看本期只学习 vueRouter & VueX 项目初始化 经过上期&#xff0c;我们学习…

从当下需求聊聊Apifox 与 Apipost 的差异

作为一名长期投身于复杂项目开发的工程师&#xff0c;我深切体会到一款适配的接口管理工具对提升开发效率的关键意义。当团队在进行工具选型时&#xff0c;我对 Apifox 和 Apipost 展开了全面且系统的对比分析&#xff0c;其中的诸多发现&#xff0c;值得与大家深入探讨。 一、…

蓝牙协议栈高危漏洞曝光,攻击可入侵奔驰、大众和斯柯达车载娱乐系统

OpenSynergy BlueSDK关键漏洞&#xff0c;可远程执行代码入侵数百万车辆系统PCA网络安全公司的研究人员在OpenSynergy BlueSDK蓝牙协议栈中发现了一组被统称为"完美蓝"&#xff08;PerfektBlue&#xff09;的关键漏洞。利用这些漏洞可能对数百万辆汽车实施远程代码执…

Android 性能优化:启动优化全解析

前言 Android应用的启动性能是用户体验的重要组成部分。一个启动缓慢的应用不仅会让用户感到烦躁&#xff0c;还可能导致用户放弃使用。 本文将深入探讨Android应用启动优化的各个方面&#xff0c;包括启动流程分析、优化方法、高级技巧和具体实现。 一、Android应用启动流程深…

前沿重器[69] | 源码拆解:deepSearcher动态子查询+循环搜索优化RAG流程

前沿重器栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。&#xff08;算起来&#xff0c;专项启动已经…

Vue+axios

1. axios简介axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;主要用于浏览器和 Node.js 环境中发送 HTTP 请求。它是目前前端开发中最流行的网络请求库之一&#xff0c;被广泛应用于各种 JavaScript 项目&#xff08;如 React、Vue、Angular 等框架或原生 JS 项目&#x…

通过Tcl脚本命令:set_param labtools.auto_update_hardware 0

1.通过Tcl脚本命令&#xff1a;set_param labtools.auto_update_hardware 0 禁用JTAG上电检测&#xff0c;因为2016.1 及更高版本 Vivado 硬件管理器中&#xff0c;当 FPGA正连接编程电缆时 重新上电&#xff0c;可能会出现FPGA无法自动加载程序的故障。 2.还可以通过 hw_serv…

Spring Boot 安全登录系统:前后端分离实现

关键词&#xff1a;Spring Boot、安全登录、JWT、Shiro / Spring Security、前后端分离、Vue、MySQL 详细代码请参考这篇文章&#xff1a;完整 Spring Boot Vue 登录 ✅ 摘要 在现代 Web 应用中&#xff0c;用户登录与权限控制是系统安全性的基础环节。本文将手把手带你实现…

Docker高级管理--Dockerfile 镜像制作

目录 一&#xff1a;Docker 镜像管理 1:Docker 镜像结构 &#xff08;1&#xff09; 镜像分层核心概念 &#xff08;2&#xff09;镜像层特性 &#xff08;3&#xff09;关键操作命令 &#xff08;4&#xff09;优化建议 2&#xff1a;Dockerfile介绍 &#xff08;1&…