dockerfile部署springboot项目(构建镜像:ebuy-docker:v1.0)

文章目录

  • 1、docker部署Mysql
  • 2、dockerfile构建镜像
    • 1.1、在idea中导入课件中的项目`资料\day01\ebuy-docker`
    • 1.2、修改项目application.yml数据库连接参数
    • 1.3、启动项目访问测试:http://localhost:8081/
    • 1.4、执行mvn package命令进行项目打包
    • 1.5、虚拟机中新建目录/opt/dockerfileebuy
    • 1.6、上传jar包到/opt/dockerfileebuy目录下
  • 3、dockerfile文件
  • 4、构建镜像 ebuy-docker:v1.0
  • 5、创建容器 ebuy-docker
  • 6、查看 容器 ebuy-docker 的 / 目录

需求:将提供的Spring Boot项目使用容器化进行部署

分析:

1、Spring Boot项目中使用到了Mysql数据库,先使用docker部署mysql

2、Spring Boot项目使用docker容器进行部署:可以基于上一步java环境的dockerfile创建springboot项目的容器。

实现步骤:

1、使用docker部署mysql

2、使用dockerfile构建Spring Boot镜像

  • 将Spring Boot打包成一个fat jar包
  • 把jar包上传到Linux服务器上
  • 在jar包目录下编写dockerfile文件
  • 构建镜像

3、创建容器进行测试

1、docker部署Mysql

使用docker部署Mysql步骤如下所示:

# 创建mysql容器。 -e: 设置环境变量	--privileged=true 开启root用户权限
docker run -di --name mysql01 -p 4306:3306 -v mysql_data01:/var/lib/mysql -v mysql_conf01:/etc/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8
docker run -di \--name mysql01 \-p 4306:3306 \-v mysql_data01:/var/lib/mysql \-v mysql_conf01:/etc/mysql \--privileged=true \-e MYSQL_ROOT_PASSWORD=1234 \mysql:8

使用Navicat连接mysql:
创建数据库:docker

创建表:tb_school

CREATE TABLE `tb_school` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

添加测试数据:

INSERT INTO `tb_school` VALUES (1, '尚硅谷-北京校区', '北京市昌平区宏福科技园2号楼3层');
INSERT INTO `tb_school` VALUES (2, '尚硅谷-上海校区', '上海市松江区谷阳北路166号大江商厦3层');
INSERT INTO `tb_school` VALUES (3, '尚硅谷-深圳校区', '深圳市宝安区西部硅谷大厦B座C区一层');
INSERT INTO `tb_school` VALUES (4, '尚硅谷-西安校区', '西安市雁塔区和发智能大厦B座3层');
INSERT INTO `tb_school` VALUES (5, '尚硅谷-成都校区', '成都市成华区北辰星拱青创园综合楼3层');
INSERT INTO `tb_school` VALUES (6, '尚硅谷-武汉校区', '武汉市东湖高新区东湖网谷6号楼4层');

2、dockerfile构建镜像

具体步骤:

1.1、在idea中导入课件中的项目资料\day01\ebuy-docker

如果发现项目导进来报错,报的错和jdk或者maven相关的。
检查maven配置和jdk配置。
在这里插入图片描述

1.2、修改项目application.yml数据库连接参数

在这里插入图片描述

1.3、启动项目访问测试:http://localhost:8081/

在这里插入图片描述

1.4、执行mvn package命令进行项目打包

E:\尚硅谷\13-尚品甄选\资料\day01\ebuy-docker>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< com.atguigu.ebuy:ebuy-docker >--------------------
[INFO] Building ebuy-docker 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ ebuy-docker ---
[INFO] Copying 1 resource
[INFO] Copying 6 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ ebuy-docker ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to E:\尚硅谷\13-尚品甄选\资料\day01\ebuy-docker\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ ebuy-docker ---
[INFO] skip non existing resourceDirectory E:\尚硅谷\13-尚品甄选\资料\day01\ebuy-docker\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ ebuy-docker ---
[INFO] Changes detected - recompiling the module!
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ ebuy-docker ---
[INFO]
[INFO] --- maven-jar-plugin:3.3.0:jar (default-jar) @ ebuy-docker ---
[INFO] Building jar: E:\尚硅谷\13-尚品甄选\资料\day01\ebuy-docker\target\ebuy-docker-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:3.0.5:repackage (repackage) @ ebuy-docker ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.494 s
[INFO] Finished at: 2024-09-26T14:13:46+08:00
[INFO] ------------------------------------------------------------------------

在这里插入图片描述

1.5、虚拟机中新建目录/opt/dockerfileebuy

[root@localhost ~]# mkdir /opt/dockerfileebuy
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
apache-tomcat-10.1.10         jdk-17.0.7                                mysql-community-client-8.0.30-1.el7.x86_64.rpm           mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm  redis-7.0.10
apache-tomcat-10.1.10.tar.gz  jdk-17_linux-x64_bin.tar.gz               mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm   mysql-community-libs-8.0.30-1.el7.x86_64.rpm            redis-7.0.10.tar.gz
containerd                    kafka                                     mysql-community-common-8.0.30-1.el7.x86_64.rpm           mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm     rh
dockerfileebuy                kibana                                    mysql-community-debuginfo-8.0.30-1.el7.x86_64.rpm        mysql-community-server-8.0.30-1.el7.x86_64.rpm          tool
dockerfilejdk17               mongo                                     mysql-community-devel-8.0.30-1.el7.x86_64.rpm            mysql-community-server-debug-8.0.30-1.el7.x86_64.rpm    z3.tar
elasticsearch                 mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar  mysql-community-embedded-compat-8.0.30-1.el7.x86_64.rpm  mysql-community-test-8.0.30-1.el7.x86_64.rpm

1.6、上传jar包到/opt/dockerfileebuy目录下

在这里插入图片描述

3、dockerfile文件

/opt/dockerfileebuy目录下新建dockerfile文件

[root@localhost dockerfileebuy]# vim dockerfile
FROM centos7-jdk17
MAINTAINER atguigu# 声明容器内主进程所对应的端口
EXPOSE 8081
ADD ebuy-docker-1.0-SNAPSHOT.jar /ebuy-docker-1.0-SNAPSHOT.jar# 相当于windows中的cd命令
WORKDIR /      
ENTRYPOINT ["java" , "-jar" , "ebuy-docker-1.0-SNAPSHOT.jar"]

目录结构如下所示:

[root@localhost dockerfileebuy]# ll
总用量 27320
-rw-r--r--. 1 root root      272 926 14:28 dockerfile
-rw-r--r--. 1 root root 27968970 926 14:24 ebuy-docker-1.0-SNAPSHOT.jar

4、构建镜像 ebuy-docker:v1.0

[root@localhost dockerfileebuy]# docker build -t ebuy-docker:v1.0 .
[+] Building 7.2s (7/7) FINISHED                                                                                                                                                                docker:default=> [internal] load .dockerignore                                                                                                                                                                         0.1s=> => transferring context: 2B                                                                                                                                                                           0.0s=> [internal] load build definition from dockerfile                                                                                                                                                      0.1s=> => transferring dockerfile: 364B                                                                                                                                                                      0.0s=> [internal] load metadata for docker.io/library/centos7-jdk17:latest                                                                                                                                   0.0s=> [1/3] FROM docker.io/library/centos7-jdk17                                                                                                                                                            0.1s=> [internal] load build context                                                                                                                                                                         5.3s=> => transferring context: 27.97MB                                                                                                                                                                      5.2s=> [2/3] ADD ebuy-docker-1.0-SNAPSHOT.jar /ebuy-docker-1.0-SNAPSHOT.jar                                                                                                                                  1.2s=> exporting to image                                                                                                                                                                                    0.3s=> => exporting layers                                                                                                                                                                                   0.2s=> => writing image sha256:f21623c70ab5356567f5930660602cb3634bf719fc6cfbbbcf4ab09bd1c5c401                                                                                                              0.0s=> => naming to docker.io/library/ebuy-docker:v1.0  

在这里插入图片描述

5、创建容器 ebuy-docker

docker run -d \--name ebuy-docker \-p 8081:8081 \ebuy-docker:v1.0
[root@localhost dockerfileebuy]# docker run -d \
>    --name ebuy-docker \
>    -p 8081:8081 \
>    ebuy-docker:v1.0
57068d7ebc26f7209079cd8c3b1fa6627712a6f5f5e8eb8bda793ade46196f6f

在这里插入图片描述
在这里插入图片描述

6、查看 容器 ebuy-docker 的 / 目录

[root@localhost dockerfileebuy]# docker exec -it ebuy-docker /bin/bash
[root@57068d7ebc26 /]# ls
anaconda-post.log  bin  dev  ebuy-docker-1.0-SNAPSHOT.jar  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

在这里插入图片描述

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

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

相关文章

SpringBoot(Java)实现MQTT连接(本地Mosquitto)通讯调试

1.工作及使用背景 工作中需要跟收集各种硬件或传感器数据用于Web展示及统计计算分析&#xff0c;如电表、流量计、泵、控制器等物联网设备。 目前的思路及解决策略是使用力控或者杰控等组态软件实现数据的转储&#xff08;也会涉及收费问题&#xff09;&#xff0c;通过组态软件…

NDI多画面系统(Multiview Pro)

NDI多画面系统(Multiview Pro)是千视以Multiview Player为基础打造的一款全新的多画面监看切换系统,支持自定义多画面/多窗口显示,单窗口可监看20路视频流,可实现多窗口、多屏幕预监+切换,且兼容NDI High Bandwidth和NDI HX/NDI HX3。同时Multiview Pro基于WebRTC技术,可…

用 Git Absorb 轻松管理 commit,告别频繁 fixup,效率提升 10 倍!

你是不是经常在使用 Git 的时候被频繁的 commit --fixup 弄得头疼?尤其是在修复代码时,一个小改动就得新建一个 commit,搞得整个 commit 历史乱七八糟,不仅影响工作效率,后来要查找问题时也变得更复杂。如果你对这个问题深有感触,那么这篇文章就是为你写的。 今天我想…

JVM 类加载机制2

扩展类加载器&#xff08;Extension ClassLoader&#xff09;&#xff0c;该类加载器是由 ExtClassLoader&#xff08;sun.misc.Launcher$ExtClassLoader&#xff09;实现&#xff0c;负责将 <JRE_HOME>/lib/ext 或者被 java.ext.dir 系统变量所指定路径中的所有类库加载…

open-resty 服务安装kafka插件

从github下载 作者&#xff1a;程序那点事儿 日期&#xff1a;2023/11/16 22:01 lua-resty-kafka 插件安装 下载代码后直接解压 mkdir -p /usr/local/openresty/modules/ #创建一个目录&#xff0c;存放lua插件cd /usr/local/openresty/modules/ #进入目录rz -y #上传lua插件…

SOMEIP_ETS_136: SD_Option_Length_shorter_GT_0_as_specified_for_type

测试目的&#xff1a; 验证DUT能够处理一个UDP选项长度小于其类型所指定长度的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应或完全忽略该请求。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个UDP选项长度小于其类型所指定…

WPS在表格中填写材料时,内容过多导致表格不换页,其余内容无法正常显示 以及 内容过多,导致表格换页——解决方法

一、现象 1&#xff0c;内容过多导致表格不换页&#xff0c;其余内容无法正常显示 2&#xff0c;内容过多&#xff0c;导致表格换页 二、解决方法 在表格内右击&#xff0c;选择表格属性 在菜单栏选择行&#xff0c;勾选允许跨页断行&#xff0c;点击确定即可 1&#xff0…

windows安装Redis以后配置远程访问

修改配置文件&#xff1a; 第一个地方&#xff1a; 第二个地方&#xff1a; 启动服务&#xff1a; redis-server .\redis.windows.conf 可能需要重启计算机 经过实测&#xff0c;这个配置文件也得改&#xff1a; 如果不想重启计算机&#xff0c;可以执行下面的命令重启…

代码随想录冲冲冲 Day56 图论Part8

117. 软件构建 这道题是使用拓扑排序的方法 看多个任务有优先级的情况下 怎么排序 对应到这道题就是文件排序 首先要记录每一个点的入度&#xff0c;当一个点的入度为0时&#xff0c;就说明这个点是顶点 然后记录每一个点向那些点相连 之后建立一个queue 寻找一个入度为0的…

基于quill2.0的富文本编辑器,Fluent Editor,支持表格,图片,表情等

官网&#xff1a;Fluent Editor | 基于 Quill 2.0 的富文本编辑器 安装 npm i opentiny/fluent-editor quill 使用案例 <template><div class"publish-form-container"><!-- TODO --><div ref"quillEditorRef" class"quill…

python的逻辑控制

python逻辑执行 python条件控制if嵌套循环语句内置函数range()Pass语句 python迭代器与生成器在python中创建一个迭代器生成器yield python条件控制 # 在python中&#xff0c;不使用括号将条件固定 if exp: # 条件满足则执行&#xff0c;后续语句不执行# 不使用{}将执行语句固…

Java框架学习(mybatis)(01)

简介&#xff1a;以本片记录在尚硅谷学习ssm-mybatis时遇到的小知识 详情移步&#xff1a;想参考的朋友建议全部打开相互配合学习&#xff01; 官方文档&#xff1a; MyBatis中文网https://mybatis.net.cn/index.html 学习视频&#xff1a; 067-mybatis-介绍和对比_哔哩哔…

《向量数据库指南》——Zilliz迁移服务:一键解锁跨平台数据迁移新纪元

在数据驱动的时代背景下&#xff0c;非结构化数据的处理与迁移已成为企业数字化转型中不可或缺的一环。随着向量数据库技术的飞速发展&#xff0c;尤其是像Milvus这样的高性能向量数据库系统的广泛应用&#xff0c;如何高效、安全、准确地实现数据在不同系统间的迁移&#xff0…

Arthas mc(Memory Compiler/内存编译器 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.2 mc &#xff08;Memory Compiler/内存编译器 &#xff09;举例1&#xff1a;可以通过-d命令指定输出目录&#xff1a;mc -d /temporary/tmp /temporary/tmp/AccountController.java举例2&#xff1a;通过--classLoade…

书生大模型实战营学习[7] InternLM + LlamaIndex RAG 实践

环境配置 选择30%A100做本次任务 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install protobuf安装Llamaindex cond…

2024年9月27日历史上的今天大事件早读

1540年09月27日罗马教皇正式批准耶稣会 1605年09月27日吉尔霍尔姆战役爆发 1825年09月27日世界第一条铁路在英国正式通车 1840年09月27日美国海军战略思想家马汉出生 1858年09月27日天地会起义&#xff0c;建立大成国 1910年09月27日橡胶股灾亡国录 1913年09月27日孙中山…

隆道供应商四大类服务升级全面速览!

隆道供应商服务升级&#xff0c;全流程在线业务协同场景&#xff0c;支持系统性交易协同服务和企业营销&#xff0c;通过持续深入洞察供应商的核心需求&#xff0c;对营销类、协同类、风控类及数据类四大关键服务进行了全面升级。推出一系列创新应用&#xff0c;致力于帮助供应…

项目启动错误

说明&#xff1a;记录一次项目启动&#xff0c;报数据库访问错误&#xff0c;如下&#xff1a; 错误信息&#xff1a;Invalid default&#xff1a;public abstract java.lang.Class tk.mybatis.spring.annotation.MapperScan.fatoryBean() 解决 没有引入mybatis依赖&#xff…

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现

Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3&#xff0c;其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上&#xff0c;通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…

Python中的数据处理与分析:从基础到高级

在数据科学和数据分析领域&#xff0c;Python凭借其丰富的库和强大的生态系统&#xff0c;成为了最受欢迎的语言之一。本文将从基础到高级&#xff0c;详细介绍如何使用Python进行数据处理和分析&#xff0c;涵盖数据清洗、数据转换、数据可视化等多个方面。 1. 数据导入与导出…