1.项目背景:

本项目作为小商场系统,涵盖内容如下:
litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端

1.1项目架构:

在这里插入图片描述

1.2项目技术栈:

在这里插入图片描述
本项目可以使用window运行jar包本地部署,也可以实现服务器直接打包部署,也可以实现docker打镜像部署运行。本篇主要介绍如何在docker上打镜像部署,docker镜像部署有点有很多,最主要的一点还是对环境和架构要求较少,可以直接使用自己开发时定义的版本。那么话不多说直接开始介绍。

2.Docker部署

2.1准备环境

首先我们需要安装docker以及docker-compose 这些步骤我就不多赘述,网上很多教程,新手小白可以跳转下面连接边安装边学习:docker安装详细介绍
本项目除了配置文件的服务,还需要安装mysql,如果安装过拉取过mysql镜像则可以直接把docker-compose的mysql拉取配置删除即可 (像我这样):
在这里插入图片描述

2.2 项目打包

1. 在服务器或者开发机打包项目到docker;

 cd litemallcat ./litemall-db/sql/litemall_schema.sql > ./docker/db/init-sql/litemall.sqlcat ./litemall-db/sql/litemall_table.sql >> ./docker/db/init-sql/litemall.sqlcat ./litemall-db/sql/litemall_data.sql >> ./docker/db/init-sql/litemall.sqlcd ./litemall-adminnpm install --registry=https://registry.npm.taobao.orgnpm run build:depcd ..mvn clean packagecp -f ./litemall-all/target/litemall-all-*-exec.jar ./docker/litemall/litemall.jar

这里的工作是:
把数据库文件拷贝到docker/db文件夹
修改litemall文件夹下面的*.yml外部配置文件,当litemall-all模块启动时会 加载外部配置文件,而覆盖默认jar包内部的配置文件。 例如,配置文件中一些地方需要设置成远程服务器的IP地址
编译litemall-admin项目
编译litemall-all模块,同时把litemall-admin编译得到的静态文件拷贝到 litemall-all模块的static目录(因为我是直接通过sftp上传的dist包,所以这里没有给出,大家自己把打好的dist包上传到服务器就行)
在这里插入图片描述
此时docker部署包结构如下:

  • bin:
    存放远程服务器运行的脚本,包括deploy.sh脚本和reset.sh脚本
  • db:
    存放litemall数据库文件
  • litemall:
    存放远程服务器运行的代码,包括litemall-all二进制可执行包和litemall外部配置文件
  • util:
    存放开发服务器运行的脚本,包括package.sh脚本和lazy.sh脚本。 由于是本地开发服务器运行,因此开发者可以不用上传到远程服务器。
  • docker-compose.yml:
    docker-compose配置脚本,运行docker-compose命令会
    2. 打一个本地镜像以便生产环境部署(更稳定安全)
    首先进到docker文件夹
    在这里插入图片描述
    由于我的Dockerfile在litemall文件夹里存放,所以打镜像命令要这样写:
docker bulidx build -t litemall:1.0.0 ./litemall

打成镜像如下
在这里插入图片描述
litemal-front代表前端镜像,后面就不在重复写了。
docker-compose文件配置如下:

version: '3'
services:litemall:image: litemall:1.0.0 #使用已经打好的镜像container_name: litemallports:- "8080:8080"volumes:- ./litemall/storage:/storage- ./litemall/logs:/logs- ./litemall/backup:/backup- /etc/localtime:/etc/localtimeenvironment:- TZ=Asia/Shanghairestart: always  #自启动

2.3启动:

docker compose up -d
查看成功如下:
在这里插入图片描述
到这里后端服务已经部署好了,接下来是前端服务,我通过nginx代理,然后再把nginx打到镜像启动。

3.Nginx代理前端

3.1 Nginx安装

这里还是不提供安装方法,提供链接如下:Nginx安装实战

3.2 上传dist包

默认在/usr/share/nginx/html,后面配置文件路径要保持一致
在这里插入图片描述

3.3 Nginx配置

如果通过yum安装nginx,默认在/etc/nginx/nginx.conf配置,主要是替换代理server:

server {listen       80;server_name  192.168.136.160;# 管理后台:访问 http://ip/admin/ location /admin {alias /usr/share/nginx/html/admin/dist;index index.html;try_files $uri $uri/ /index.html;}# 商城前端:访问 http://ip/shop/ location /shop {alias /usr/share/nginx/html/shop/dist;index index.html;try_files $uri $uri/ /index.html;}# 后端接口转发:访问 http://ip/api/... location /api/ {proxy_pass http://192.168.136.160:8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}error_page 404 =200 /admin/index.html;}

这时启动nginx已经可以访问

systemctl start nginx

接下来使用docker compose up -d
打到镜像中
访问http:/ip/shop如下:
在这里插入图片描述
访问http:/ip/admin如下:
在这里插入图片描述
至此已经完成,但是项目仍有一点小bug,应该是我自己的问题,如下:
在这里插入图片描述
正在跟进中,如果有大佬懂这个问题,可以帮帮我,谢谢。祝大家每日都好运,每天都进步,加油!

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

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

相关文章

Java网络编程入门:从基础原理到实践(二)

目录 1. 网络编程基础:搞懂设备通信的底层逻辑 1.1 为啥需要网络编程?—— 让设备 “互通有无” 1.2 什么是网络编程?—— 给数据 “定规矩、找路线” 1.3 网络编程的基本概念:理清通信里的角色和流程 1.3.1 发送端和接收端 …

XSS内容分享

反射型XSS :反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS 的JS 代码在Web 应用的参数(变量)中,如搜索框的反射型XSS。在搜索框中,提交PoC[scriptalert(/xss/)/script],点击搜索,即可触发…

电线杆距离居民区的安全距离【重要!!!】

10kV架空电线安全距离购房指南 中国大陆地区10kV架空电线距居民住宅需要满足1.5米水平安全距离(裸导线)和6.5米垂直安全距离的国家强制标准。根据现行法规,10kV系统的电磁辐射水平极低,对居民健康影响可忽略不计,但购房…

河南萌新联赛2025第(二)场:河南农业大学

我看到花儿在绽放 我听到鸟儿在歌唱 我看到人们匆匆忙忙 我看到云朵在天上 我听到小河在流淌 我看到人们漫步在路上 河南萌新联赛2025第(二)场:河南农业大学 河南萌新联赛2025第(二)场:河南农业大学_ACM/N…

unixbench系统性能测试

unixbench系统性能测试 环境: UnixBench: 6.0.0(2025-05-21)简介 UnixBench 是一款经典的 Unix/Linux 系统性能测试工具,主要用于评估系统的CPU 运算能力、内存性能、多线程处理能力以及部分系统调用(如进程创建、文件操作)的效率…

上线了,自己开发的刷题小程序,vue3.0

嘿,最近我搞了个Java刷题的小程序,用Vue写的,界面和功能都还挺完整的。今天就来跟大家聊聊这个小程序是怎么实现的,代码里都藏着哪些小细节。 先看整体结构,我把整个页面分成了几个大块:顶部导航栏、题目内…

嵌入式开发学习———Linux环境下数据结构学习(三)

单向循环链表单向循环链表是一种特殊的单向链表,尾节点的指针指向头节点,形成一个闭环。适用于需要循环访问的场景,如轮询调度。结构特点:每个节点包含数据域和指向下一个节点的指针,尾节点的指针指向头节点而非空值。…

【华为机试】684. 冗余连接

文章目录684. 冗余连接描述示例 1示例 2提示解题思路核心分析问题转化算法选择策略1. 并查集 (Union-Find) - 推荐2. 深度优先搜索 (DFS)3. 拓扑排序算法实现详解方法一:并查集 (Union-Find)方法二:深度优先搜索 (DFS)数学证明并查集算法正确性证明时间复…

Ⅹ—6.计算机二级综合题7---10套

目录 第7套 【填空题】 【修改题】 【设计题】 第8套 【填空题】 【修改题】 【设计题】 第9套 【填空题】 【修改题】 【设计题】 第10套 【填空题】 【修改题】 【设计题】 第7套 【填空题】 题目要求:给定程序中,函数fun的功能是:将形参s所指字符串中所…

【三桥君】大语言模型计算成本高,MoE如何有效降低成本?

​ 你好,我是 ✨三桥君✨ 📌本文介绍📌 >> 一、引言 在AI技术飞速发展的当下,大语言模型(LLM)的参数规模不断增长,但随之而来的计算成本问题也日益凸显。如何在保持高效推理能力的同时扩…

Python游戏开发利器:Pygame从入门到实战全解析

引言 Pygame是Python中最受欢迎的2D游戏开发库之一,基于SDL(Simple DirectMedia Layer)构建,支持图形渲染、音效处理、事件响应等核心功能。无论是开发简单的休闲游戏,还是复杂的交互式应用,Pygame都能提供…

行为型模式-协作与交互机制

行为型模式聚焦于对象间的行为交互,通过规范对象协作方式提升系统的灵活性与可扩展性。在分布式系统中,由于多节点异步通信、网络不可靠性及状态一致性挑战,行为型模式需针对分布式特性进行适应性设计。本文从观察者、策略、命令、责任链、状…

spring boot 整合 Spring Cloud、Kafka 和 MyBatis菜鸟教程

环境准备确保项目中已引入 Spring Boot、Spring Cloud、Kafka 和 MyBatis 的依赖。以下是一个典型的 Maven 依赖配置&#xff1a;<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artif…

20 BTLO 蓝队靶场 Sticky Situation 解题记录

难度&#xff1a;5/10考察技能: Windows admin, Autopsy 使用场景&#xff1a;分析USB设备使用情况Autopsy使用注意&#xff1a;用管理员打开&#xff0c;在实际分析时注意先复制一个镜像文件&#xff0c;保存好原文件常用的Windows USB 取证的位置:Windows XP:Registry Key: U…

安装及配置Go语言开发环境与VSCode集成指南

安装Go语言开发 安装Go语言开发环境是第一步。访问Go官网&#xff0c;下载适合操作系统的安装包&#xff0c;如果进不去可以访问Go官方镜像站。 根据自己的系统选择对应的安装包&#xff0c;我这边是Windows系统就点击安装第一个即可。 点击下一步即可。 验证安装是否成功可以…

专题:2025微短剧行业生态构建与跨界融合研究报告|附100+份报告PDF汇总下载

原文链接&#xff1a; https://tecdat.cn/?p43384 分析师&#xff1a;Boyu Wang 在此对 Boyu Wang 对本文所作的贡献表示诚挚感谢&#xff0c;他在武汉大学完成了数据科学与大数据技术专业的学习。擅长 R 语言、Python、机器学习、数据可视化。 中国短视频行业在经历爆发式增…

配置NGINX

Nginx环境配置与前端VUE部署安装nginx&#xff1a;命令sudo yum update && sudo yum install nginx部署:拷贝前端到目录/home/publish/idasweb/下修改nginx配置&#xff1a;进入到/etc/nginx目录下&#xff0c;修改nginx.conf中user www-data为user root&#xff0c;不…

MySQL深度理解-MySQL索引优化

1.Order by与Group by优化1.1Case1employees表中建立了name&#xff0c;position和age索引&#xff0c;并且使用了order by age进行排序操作&#xff1a;EXPLAIN SELECT * FROM employees WHERE name LiLei and position dev order by age最终explain的结果发现使用了idx_nam…

「Linux命令基础」用户和用户组实训

用户与用户组关系管理 在Linux系统中,用户和用户组的关系就像班级里的学生和小组。一个用户可以同时属于多个组,这种灵活的成员关系为权限管理提供了便利。创建用户时,系统会自动生成一个与用户同名的主组,这个组会成为用户创建文件时的默认属组。 理解用户和用户组的关系…

Https以及CA证书

目录 1. 什么是 HTTPS 通信机制流程 证书验证过程 CA证书 浏览器如何校验证书合法性呢&#xff1f; 1. 什么是 HTTPS HTTP 加上加密处理和认证以及完整性保护后即是 HTTPS。 它是为了解决 HTTP 存在的安全性问题&#xff0c;而衍生的协议&#xff0c;那使用 HTTP 的缺点有…