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

26 docker前后端部署

[参考博客]((257条消息) Docker+Nginx部署前后端分离项目(SpringBoot+Vue)的详细教程_在docker中安装nginx实现前后端分离_这里是杨杨吖的博客-CSDN博客)

(Docker+Nginx部署前后端分离项目(SpringBoot+Vue))

安装docker

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
# 查看自带的docker compose版本
docker compose version

服务器设置

开放端口

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前端

修改请求路径

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

build

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

生成dist目录

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后端

创建Dockerfile文件

#依赖jdk8环境
FROM openjdk:8#对外暴露后端端口
EXPOSE 8880
#复制server-1.0-SNAPSHOT到docker容器中并命名为app.jar
ADD back_endpoint-0.0.1-SNAPSHOT.jar /app.jar
#执行命令
# RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=pro"]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

设置生产环境

application.yml

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

application-pro.yml

记得修改mongodb数据库地址

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

新建docker-compose.yml

version: "3"
services:nginx: # 服务名称,用户自定义image: nginx:latest  # 镜像版本ports:- 80:80  # 暴露端口- 8991:8991restart: alwaysvolumes: # 挂载- /root/nginx/html:/usr/share/nginx/html- /root/nginx/nginx.conf:/etc/nginx/nginx.confprivileged: true # 这个必须要,解决nginx的文件调用的权限问题mongodb:image: mongo:5.0.10-focalports:- 27017:27017restart: alwayscommand:- "--auth"environment://登入mongodb的用户名和密码MONGO_INITDB_ROOT_USERNAME: adminMONGO_INITDB_ROOT_PASSWORD: "Rootroot123" wiredTigerCacheSizeGB: 2volumes:- "/root/mongo/data:/data/db"- "/root/mongo/logs:/var/log/mongodb"- "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"server: #后端服务名称,注意要和下面的image保持一致=========image: server:latestrestart: alwaysbuild: . # 表示以当前目录下的Dockerfile开始构建镜像ports:- 8880:8880depends_on: # 依赖与mongodb,其实可以不填,默认已经表示可以- mongodb

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为数据库在容器中,所以地址使用容器名即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打包 package

pom.xml

注意需要跳过测试

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.7</version><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version><configuration><skipTests>true</skipTests> <!--默认关掉单元测试 --></configuration></plugin></plugins>
</build>

打包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

部署

前端

创建如下目录 并且上传nginx.conf

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将前端dist目录下的内容拷贝到html中

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后端

上传jar包及文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

启动容器编排命令

docker compose up -d

mongoDB权限问题

进入容器

docker exec -it java_project-mongodb-1 bash
# 进入mongo shell
mongo

在开始导入数据库前,需要创建好操作数据库的用户

db.auth("admin","Rootroot123")db.createUser({user:"userdata_admin",pwd:"Rootroot123",roles:[{role:"dbOwner",db: "userdata"}]})

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SparingBoot配置文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

导入数据

",“Rootroot123”)

db.createUser({user:“userdata_admin”,pwd:“Rootroot123”,roles:[{role:“dbOwner”,db: “userdata”}]})


[外链图片转存中...(img-zukD0KIo-1696144009330)]> SparingBoot配置文件[外链图片转存中...(img-Lew7pIGo-1696144009331)]> 导入数据![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fgitee.com%2Fjakenxie%2Fnote_img%2Fraw%2Fmaster%2Fimg%2Fimage-20230513141911829.png&pos_id=img-NIKCrFeP-1696144009331)
http://www.lryc.cn/news/185257.html

相关文章:

  • [linux] SFTP文件传输基本命令 --- xshell 直接上传文件
  • Tomcat 多实例
  • 全民拼购模式:电商的新趋势和机遇
  • 免费使用,媲美Midjourney!微软在Bing Chat等提供—DALL-E 3
  • Nacos中AP和CP 切换
  • 服务器中勒索病毒怎么解决?勒索病毒解密,数据恢复
  • 全面解析UDP协议(特点、报文格式、UDP和TCP的区别)
  • iPhone15手机拓展坞方案,支持手机快充+传输数据功能
  • 优化理论笔记
  • FastAPI学习-23.异常处理器 exception_handler
  • 国庆出游远程实测:ToDesk 、TeamViewer、AnyDesk远程控制软件稳定性
  • Facebook 惊现网络钓鱼浪潮,每周攻击 10 万个账户
  • 高通camx开源部分简介
  • Springboot 框架中加解密字段后存储数据库
  • 计算机毕设 大数据工作岗位数据分析与可视化 - python flask
  • Maven聚合项目配合Springcloud案例
  • 目标检测网络系列——YOLO V1
  • 任务工单发送失败重试方案设计
  • 关于 Vue-iClient-MapboxGL 的使用注意事项
  • Go 语言 map 如何顺序读取?
  • flutter StreamSubscription 订阅者 stream
  • 安全性算法
  • 解决ASP.NET Core的中间件无法读取Response.Body的问题
  • DownloadingImages 下载缓存图片,显示图片文字列表
  • 【应用层协议】HTTPS的加密流程
  • 最新AI创作系统/AI绘画系统/ChatGPT系统+H5源码+微信公众号版+支持Prompt应用
  • Z410 2023款无人机,专为零基础开发者打造的入门级开源无人机
  • elementui修改message消息提示颜色
  • Linux和Hadoop的学习
  • 通达信指标预警信号,自动发送给微信好友1.0