26 docker前后端部署

news2024/12/27 20:00:35

[参考博客]((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:8991
    restart: always
    volumes: # 挂载
      - /root/nginx/html:/usr/share/nginx/html
      - /root/nginx/nginx.conf:/etc/nginx/nginx.conf
    privileged: true # 这个必须要,解决nginx的文件调用的权限问题
  mongodb:
    image: mongo:5.0.10-focal
    ports:
      - 27017:27017
    restart: always
    command:
      - "--auth"
    environment://登入mongodb的用户名和密码
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: "Rootroot123" 
      wiredTigerCacheSizeGB: 2
    volumes:
      - "/root/mongo/data:/data/db"
      - "/root/mongo/logs:/var/log/mongodb"
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"
  server: #后端服务名称,注意要和下面的image保持一致=========
    image: server:latest
    restart: always
    build: . # 表示以当前目录下的Dockerfile开始构建镜像
    ports:
      - 8880:8880
    depends_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.coloradmin.cn/o/1054108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hudi第二章:集成Spark(二)

系列文章目录 Hudi第一章&#xff1a;编译安装 Hudi第二章&#xff1a;集成Spark Hudi第二章&#xff1a;集成Spark(二) 文章目录 系列文章目录前言一、IDEA1.环境准备2.代码编写1.插入数据2.查询数据3.更新数据4.指定时间点查询5.增量查询6.删除数据7.覆盖数据 二、DeltaStre…

【sql注入】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。sql注入【二】

前言 本篇博客主要是通过piakchu靶场来讲解如何通过SQL注入漏洞来写入文件&#xff0c;读取文件。通过SQL输入来注入木马来getshell等&#xff0c;讲解了比较详细的过程&#xff1b; 如果想要学习SQL注入原理以及如何进行SQL注入&#xff0c;我也写了一篇详细的SQL注入方法及…

国庆作业 day 10.1

使用select完成TCP并发服务器 #include "myhead.h" #define ERR_MSG(msg) do{\printf("%d\n",__LINE__);\perror(msg);\ }while(0) #define PORT 3696 #define IP "192.1168.10.22" int main(int argc, const char *argv[]) { //套接字int sfd…

使用 sonarqube 进行代码质量检查

Docker 环境准备 参考官方文档先对 Docker Server 进行参数调整 Because SonarQube uses an embedded Elasticsearch, make sure that your Docker host configuration complies with the Elasticsearch production mode requirements and File Descriptors configuration. # …

Wing FTP Server安装配置结合内网穿透实现公网访问本地站点

Wing FTP Server安装配置结合内网穿透实现公网访问本地站点 文章目录 Wing FTP Server安装配置结合内网穿透实现公网访问本地站点前言1.Wing FTP Server下载安装2.Wing FTP Server配置部署3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…

【kubernetes】kubernetes中的Deployment使用

1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位&#xff0c;Pod通常通过Service进行暴露&#xff0c;因此&#xff0c;通常需要管理一组Pod&#xff0c;RC和RS主要就实现了一组Pod的管理工作&#xff0c;其中&#xff0c;RC和RS的区别在于&#xff0c;RS提供更…

C++ - 开散列的拉链法(哈希桶) 介绍 和 实现

前言 之前我们介绍了&#xff0c;闭散列 的 开放地址法实现的 哈希表&#xff1a;C - 开放地址法的哈希介绍 - 哈希表的仿函数例子_chihiro1122的博客-CSDN博客 但是 闭散列 的 开放地址法 虽然是哈希表实现的一种&#xff0c;但是这种方式实现的哈希表&#xff0c;有一个很大的…

使用sqlmap获取数据步骤

文章目录 1.使用sqlmap获取所有数据库2.使用sqlmap获取当前连接数据库3.使用sqlmap获取当前数据库下所有表名4.使用sqlmap获取当前数据库下某个表下所有列名5.使用sqlmap获取当前数据库下某个表下指定字段的数据6.测试当前用户是否是管理员7.使用burpsqlmap批量检测8.脱库命令9…

【接口技术】总线课堂习题

1&#xff1a;CPU在执行OUT DX, AL指令时&#xff0c;&#xff08;&#xff09;寄存器的内容送到地址总线上 A&#xff0c;DL B&#xff0c;DX C&#xff0c;AX D&#xff0c;DL 解答&#xff1a;B out指令是把AL的数据输出到DX的端口&#xff0c;因此AL寄存器的内容送到…

多线程学习笔记(一)

文章目录 1 线程基础知识复习2 CompletableFuture1、Future和Callable接口2、FutureTask3、对Future的改进4、案例精讲——电商5、常用方法6、CompetableFutureWithThreadPool【重要】 3 锁1、乐观锁和悲观锁2、synchronized 8锁案例3、公平锁和非公平锁4、可重入锁5、死锁及排…

正点原子嵌入式linux驱动开发——TF-A初探

上一篇笔记中&#xff0c;正点原子的文档简单讲解了一下什么是TF-A&#xff0c;并且也学习了如何编译TF-A。但是TF-A是如何运行的&#xff0c;它的一个运行流程并未涉及。TF-A的详细运行过程是很复杂的&#xff0c;涉及到很多ARM处理器底层知识&#xff0c;所以这一篇笔记的内容…

剖析华为云Astro Platform技术价值与使用体验

面对企业IT专业人员紧缺的挑战&#xff0c;华为云Astro低代码平台提供创新解决方案。让非编程专业人士能快速构建、部署应用&#xff0c;缓解开发资源压力&#xff0c;并高度整合技术架构&#xff0c;强化项目沟通协作。使每个参与其中的角色都找到自己的位置&#xff0c;携手全…

初级篇—第三章多表查询

文章目录 为什么需要多表查询一个案例引发的多表连接初代查询笛卡尔积&#xff08;或交叉连接&#xff09;的理解 多表查询分类等值连接 vs 非等值连接自连接 vs 非自连接内连接VS外连接 SQL99语法实现多表查询内连接的实现外连接的实现左外连接右外连接满外连接 UNION的使用7种…

leetCode 455.分发饼干 贪心算法

455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09; 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&…

全网最全Python系列教程(非常详细)---集合讲解(学Python入门必收藏)

&#x1f9e1;&#x1f9e1;&#x1f9e1;这篇是关于Python中集合的讲解&#xff0c;涉及到以下内容&#xff0c;欢迎点赞和收藏&#xff0c;你点赞和收藏是我更新的动力&#x1f9e1;&#x1f9e1;&#x1f9e1; 1、集合是什么&#xff1f; 2、集合应该怎么去定义&#xff1f…

从零手搓一个【消息队列】实现数据的硬盘管理和内存管理(线程安全)

文章目录 一、硬盘管理1, 创建 DiskDataCenter 类2, init() 初始化3, 封装交换机4, 封装队列5, 关于绑定6, 关于消息 二、内存管理1, 数据结构的设计2, 创建 MemoryDataCenter 类3, 关于交换机4, 关于队列5, 关于绑定6, 关于消息7, 恢复数据 三、小结 创建 Spring Boot 项目, S…

Xcode 超简单实用小秘技让撸码进入新境界

概览 Xcode 是开发  应用不可或缺的王牌主力军&#xff0c;虽然 Xcode 中一些常用使用姿势想必大家都已驾轻就熟&#xff0c;但其中仍有一些隐藏宝藏小技巧不为人知。 充分挖掘它们可以极大加速和方便秃头码农们日常的撸码行为。 一般的&#xff0c;它们分为两类&#xff…

机器人制作开源方案 | 四轴飞行器

1. 概述 基于探索者搭建的模块化四轴飞行器研究平台&#xff0c;采用独特的设计方式&#xff0c;可实现在室内完成对四轴飞行器、无人机等运动控制的原理研究&#xff0c;以及学习飞行控制的原理知识。 2. 组装 请按照下图进行机架的组装。 整体图 请解压文末资料中的 /软件/Mi…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(一)

思维导图 学习目标 变量声明 一、Web API 基本认知 作用和分类 什么是DOM DOM树 DOM对象 二、获取DOM对象 三、操作元素内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compa…

基于Java的实验室预约管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…