| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> DockerCompose部署SpringBoot项目——CentOS8-arm64 -> 正文阅读 |
|
[系统运维]DockerCompose部署SpringBoot项目——CentOS8-arm64 |
Docker Compose部署SpringBoot项目虚拟机是CentOS8-arm64 外部机是Mac(m1芯片) 1. 制作SpringBoot项目镜像(1) 将SpringBoot项目打为jar包将jar包复制到虚拟机中(可以在虚拟机新建好一个文件夹存放,放到其他文件夹下可能没有权限),我使用的是ForkLift,在AppStore可以免费下载 (2) 准备工作创建一个文件夹存放dockerfile,并进入
将刚刚的jar包移动到docker-files目录中,并修改名字
(3) 编写dockerfile文件
dockerfile官方文档:https://docs.docker.com/engine/reference/builder/ 需要注意:我的springboot项目是基于jdk1.8开发的,因此需要定义父镜像为java8,普通的amd64的CentOS定义如下:
由于我的电脑里安装的是arm64架构的CentOS,普通的java:8不支持,因此重新在docker hub上找了一个支持arm64的jdk8:
完整dockerfile文件:
(4) 生成镜像
(5) 查看镜像
可以看到刚刚制作的镜像: 2. 使用Docker Compose编排Mysql+SpringBoot(1) 安装Docker Compose参考:https://zhuanlan.zhihu.com/p/390868743 (2) 拉取Mysql镜像由于我的是arm64架构的CentOS8,因此在dockerhub 找了一个支持arm64架构的mysql镜像:
(3) 创建并进入docker-compose目录
(4) 编写docker-compose.xml文件Docker Compose官方文档(version2):https://docs.docker.com/compose/compose-file/compose-file-v2/#build
写入以下内容:
(5) 使用docker-compose启动容器
查看docker容器
可以看到两个正在运行的容器,一个mysql,一个bill: (6) 远程连接Mysql导入sql文件数据进入容器并设置mysql允许远程连接,请参考:https://blog.csdn.net/jat0824/article/details/123499442?spm=1001.2014.3001.5502 使用Sequel Ace连接虚拟机上的mysql容器,使用root用户,和刚刚在docker-compose.xml中定义的root用户的密码进行登录: 然后导入sql文件。 (7) 测试访问在浏览器访问:http://虚拟机ip:你映射的端口号/项目api,即可看到自己的项目页面 针对thymeleaf模板在docker中不生效的问题:原本在Controller中返回页面可以直接返回字符串,thymeleaf会自动将其拼接上前缀: 但是在docker中无法正确解析,需要返回一个ModelAndView才能正常解析,因此修改Controller: 重定向的内容也是一样: 然后重新打包,生成镜像(先删除原来的镜像),部署。 docker-compose.yml优化修改了如果修改了代码,按照上面的流程就会需要重新制作镜像,比较麻烦,docker-compose文件中可以直接build镜像,不需要手动build。 修改bill-dockerfile文件注意需要把文件名改为Dockerfile!!!!
修改docker-compose.yml官方文档:https://docs.docker.com/compose/compose-file/compose-file-v2/#build
dockerfile目录结构如下: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:25:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |