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

Docker部署Spring Cloud微服务实战

前情提要: 在之前的springcloud项目打包实战中,我们已经学会了如何把springcloud中的应用打包成jar包,但是用jar包运行有很大的缺点,比如如果你想要把它放到Linux服务器上运行,你必须下载linux对应版本的jdk,再者,如果你还想顺带一起部署中间件,如mysql,redis,这些中间件在各个平台都有不同的安装包和部署方式,非常难以部署。为了降低运维难度,可以使用docker来进行部署。
我们当然首先要学会如何打包和使用jar包,如果不会的话点击链接跳转

1,准备工作

我们当然要拥有docker-desktop,并准备一个用于测试的微服务项目。为了能够快速拉取镜像,可以修改docker-desktop的配置文件更改镜像源,如下是我的相关配置:
在这里插入图片描述

2,文件编写

我们为每个微服务都编写一个这样的文件

ARG MODULE_NAME=default_module
ARG CONTAINER_PORT=8080# 阶段1:构建阶段
FROM maven:3.8.6-eclipse-temurin-17 AS builder
ARG MODULE_NAME
WORKDIR /build# 1. 复制POM文件(利用缓存)
COPY pom.xml .
COPY ${MODULE_NAME}/pom.xml ./${MODULE_NAME}/# 2. 下载依赖(pom.xml变化时才重新执行)
RUN mvn -B dependency:go-offline -pl ${MODULE_NAME} -am# 3. 复制源码(独立层确保代码变更触发重建)
COPY ${MODULE_NAME}/src ./${MODULE_NAME}/src# 4. 编译(仅需一次package命令)
RUN mvn package -pl ${MODULE_NAME} -DskipTests# 阶段2:运行阶段
FROM openjdk:17
ARG MODULE_NAME
ARG CONTAINER_PORT
ENV SERVER_PORT=${CONTAINER_PORT}COPY --from=builder /build/${MODULE_NAME}/target/*.jar /app.jar
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["java", "-jar", "/app.jar", "--server.port=${SERVER_PORT}"]

再在项目的根目录,编写工程的docker-compose.yml,用于多镜像的构建,一键启动所有微服务dockerfile

services:test:build:context: .dockerfile: ./test/Dockerfileargs:MODULE_NAME: testCONTAINER_PORT: 8686ports:- "8686:8686"

3,运行测试

我们在命令行中输入如下命令:

docker compose up -d

经过漫长的等待后终于启动成功了
在这里插入图片描述
我们如果修改了代码,要更新镜像,可以运行如下命令

docker compose down
docker-compose up -d --build

此时就能关闭镜像并且重建镜像

http://www.lryc.cn/news/622068.html

相关文章:

  • vue一个超简单的菜单栏伸缩示例
  • 剧本杀小程序系统开发:重构推理娱乐生态
  • C语言第八章指针五
  • linux服务器查看某个服务启动,运行的时间
  • Chrome插件开发
  • 最长递增子序列-dp问题+二分优化
  • 智能巡检技术浅析
  • 最新chrome浏览器elasticsearch-head无法安装使用问题
  • 牛市暴跌后什么时候进入好
  • C++ 调试报错 常量中有换行符
  • NAS播放器的新星,一站式全平台媒体库管理工具『Cinemore』体验
  • 高通vendor app访问文件
  • 前端css学习笔记6:盒子模型
  • IP生意的天花板更高了吗?
  • 多路混音声音播放芯片型号推荐
  • Microsoft Visual Studio常用快捷键和Windows系统常用快捷键的整理
  • 深入解析五大通信协议:TCP、UDP、HTTP_HTTPS、WebSocket与GRPC
  • 【Leetcode hot 100】53.最大子数组和
  • 异步任务执行顺序
  • DataGear:一个免费开源的国产数据可视化分析平台
  • 经典BT的连接过程
  • 归并排序和统计排序
  • 智能工厂生产监控大屏-vue纯前端静态页面练习
  • AI智能体在软件测试中的应用与未来趋势
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • C++第二十课:快递运费计算器 / 黑白配+石头剪刀布小游戏
  • SAP ALV导出excel 报 XML 错误的 /xl/sharedStrings.xml
  • 2025.08.09 江门两日游记
  • 4.2 寻址方式 (答案见原书 P341)