Docker 部署Spring boot + Vue(若依为例)

手把手教你使用Docker部署Vue+Springboot项目(详细版) 快速使用Docker部署Vue+Springboot项目完整教程 阅读详情

首先我们要在docker中安装好环境镜像

jdk.  mysql.  redis. nginx 镜像安装我们在上一篇文章中已说明,请大家自行查看。

下面我介绍部署步骤

  • 部署后台jar

在你的工作目录下新建application 用来存放后台jar包

1.将打好的jar包上传

2.编写Dockerfile文件,上传到jar同目录

#Dockerfile
#指定镜像
FROM openjdk:8 

#后续指定工作目录
WORKDIR /app
#添加JAR文件到容器中
COPY ruoyi-admin.jar ./application.jar
#设置环境变量
ENV TZ Asia/Shanghai
ENV JAVA_OPS -Duser.timezone=Asia/Shanghai
#运行端口
EXPOSE 8090
#启动命令
ENTRYPOINT ["java","-Dfile.encoding=utf-8","-D-Xms2g -Xmx2g","-Dserver.port=8090","-Dspring.profiles.active=druid","-Djava.security.egd=file:/dev/./urandom","-jar","./application.jar"]

  •  部署Vue前台

在上篇文章中,我们已经将nginx的html目录和config目录挂载到了我们新建的工作目录/usr/local/workspace/nginx下

1.将我们前台打的dist下的文件上传到/usr/local/workspace/nginx/html目录下

2.编辑我们/usr/local/workspace/nginx/conf下的nginx.conf文件,配置内容如下


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
                        try_files $uri $uri/ /index.html last; 
            index  index.html index.htm;
        }
        #跨域配置
        location /prod-api/{
                proxy_pass http://172.31.3.64:8090;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

  • 编辑docker-compose.yml文件
version: "3.3"
services:
  redis:
    image: redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./redis/redis.conf:/etc/redis/redis.conf
      - ./redis/data:/data
    command: redis-server /etc/redis/redis.conf  
  nginx:
    # 镜像名 如果需要指定版本 就把 latest 换成版本号
    image: nginx:1.25 
    # 容器名
    container_name: nginx-web
    # 重启策略
    restart: always
    # 端口映射
    #network_mode: host
    ports:
      - 80:80
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/html:/usr/share/nginx/html
      - ./nginx/log:/var/log/nginx # 将Nginx的日志目录挂载到宿主机
    privileged: true # 这个必须要,解决nginx的文件调用的权限问题
  api:
    build: ./application
    ports:
      - '8090:8090'
    container_name: ruoyi-api
    restart: always
    volumes:
      - ./logs:/opt/logs

关于Dockerfile和Docker Compose的详细内容大家可以到菜鸟教程学习

执行命令 docker-compose up -d

安装部署中出现的错误:

1.502没有权限,并且加载不出验证码

这个是nginx配置代理的问题,大家就仔细检查一下,nginx.conf配置文件就行,我是没有添加图里我框住的内容,加上就行了

 2.加上配置后,又报了一个404,还是没有显示验证码

404就是请求路径不对

我这里的原因是我前台vue打的是prod  的包,后台jar包我直接用的若依的配置文件打的包,默认没有项目前缀,所有一直报404,加上前缀就好了

浏览器测试

 

Docker Compose一键部署Spring Boot + Vue项目 本文在普通的Docker部署Spring Boot + Vue项目的基础上进行。部署若依前后端分离版项目为例,重点在于如何使用Docker Compose的方式加快项目部署过程。此前使用Docker部署一个Spring Boot + Vue项目,包含了4个容器:MySQLRedisJava后端Nginx前端而稍微复杂的项目,还会有各种各样的其它中间件,需要部署的容器远不止4个。如果还像之前那样手动的逐一部署,就太麻烦了。而Docker Compose就可以帮助我们实现。 阅读详情

相关推荐

【全开源】旅游系统源码(Uniapp+FastAdmin+ThinkPHP)

通过源码的灵活配置和定制开发,我们可以根据旅游企业的实际需求,快速构建出符合其业务特点的旅游系统。旅游系统源码,作为这一变革的基石,为旅游业的数字化转型提供了强有力的支撑。通过深入研究和应用旅游系统源码,我们能够构建出更加智能、便捷、个性化的旅游服务平台,满足游客日益增长的旅游需求。国际化发展:随着全球化的深入发展,旅游系统源码也将迎来国际化的发展机遇,为国内外游客提供更加便捷、高效的旅游服务。跨界融合:旅游系统源码将与更多领域进行跨界融合,如与交通、餐饮、购物等行业的结合,为游客提供更加丰富的旅游体验。

2401_84413757的博客 2153

Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS)

本次整体部署操作使用阿里云服务器,这里我选择的是香港地区的2核2G ECS(可以省略域名备案操作)。NginxMySQLRedis后端项目前端项目。

保持学习 3771

ESP32对接百度智能云语音识别:从硬件配置到API调用的完整指南

本文详细介绍了ESP32对接百度智能云语音识别的完整流程,从硬件配置到API调用,涵盖麦克风选择、音频处理、错误处理及性能优化等关键环节。通过实战案例展示如何实现低成本、高效率的语音交互方案,特别适合智能硬件开发者参考。

weixin_29198045的博客 374

1.服务器docker部署若依微服务所需环境

如果需要设置Nacos、MySQL、Redis镜像的版本,可以进入对应文件夹里修改对应dockerfile文件,同时修改docker-compose.yaml对应的image值。连接MySQL,如果需要更改默认的初始密码,可以在部署前修改docker-compose.yaml中的。最后我们能够使用外网环境正确连接MySQL、Redis、访问Nacos,即为部署成功。再进入nacos的conf文件夹内修改对应的配置文件。进入docker的MySQL容器内。部署后进行MySQL的密码修改。

q192101462的博客 870

AWVS安装与使用教程

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。

qq_59607911的博客 4098

在RStudio中使用GitHub Copilot:代码自动生成,从此告别手敲!

可以通过自定义提示词来引导Copilot生成符合自己需求的代码。再看一个做统计分析的。

Codewar的博客 331

使用 Docker 容器化部署 Spring Boot + Vue 项目:以若依后台管理系统为例

单体部署:将前端和后端代码打包在一起,部署到同一个服务器或应用容器中。分离部署:分离部署是指将前端和后端代码分开部署,前端部署在静态资源服务器上,后端部署在应用服务器上Docker容器化部署:将应用及其依赖环境打包成一个或多个Docker容器,然后部署到支持Docker的服务器上我们就用Docker容器化部署一个springboot+vue的项目,我选用的是若依后台管理系统,仓库地址:https://gitee.com/y_project/RuoYi-Vue.git,将其克隆下来作为我们部署的项目。

2301_78796401的博客 1349

AUTOSAR从入门到精通-中间件通信DDS(一)

汽车开放系统架构(automotive open system architecture,autosar)是由全球各大汽车oem、零部件供应商、汽车电子软件公司联合建立的一套标准协议。该协议规范了一个符合汽车电子软件开发的、开放的以及标准化的软件架构。最初的autosar规范的制定只考虑传统汽车电子电器架构,基于硬件算力有限场景,提供确定的功能。

getusushu的博客 1869

Ubuntu环境docker部署若依RuoYi-Cloud【保姆级】

通过开源若依RuoYi-Cloud微服务项目(前后端),结合其说明文档,学习下微服务和docker部署。

qq_43325994的博客 3499

DW3000芯片驱动API介绍

详细介绍DW3000驱动程序API的调用流程说明和中断处理程序流程说明

DT程序员的博客 1522

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2393

Docker部署Spring Boot + Vue项目

本文的Spring Boot + Vue项目采用若依前后端分离版项目为例,使用Docker部署项目,当然读者如果使用自己的Spring Boot + Vue项目也可以,Docker部署方法一样。

web18285482512的博客 1243

YOLO11改进 - 卷积Conv | StripBlockStripBlock大条带卷积块,通过顺序条带卷积捕获方向性长程依赖,强化高长宽比目标特征提取 | AAAI 2026

本文介绍了面向高纵横比目标检测的条带卷积模块——StripBlock,适用于遥感、船只、车道等细长结构目标的特征增强。该方法先通过 `5×5` 深度卷积提取局部空间信息,再利用 `1×19` 与 `19×1` 的正交长条卷积分别建模横向和纵向长程依赖,最后通过 `1×1` 卷积生成空间注意力权重,并以逐元素门控方式重标定输入特征。我们将 StripBlock 成功集成进 YOLO11,在检测头的多尺度特征层中引入条带式空间建模能力,从而增强模型对细长目标和复杂遥感场景的定位与识别效果。

魔改工程师的博客 234
上一篇: docker 安装常用镜像
下一篇: Arthas 监控接口耗时
Java程序之猿
博客等级 码龄9年 2599粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值