spingboot项目打包到docker镜像[保姆级教程]

news2024/11/27 16:46:13

目录

1. 项目准备

2. 项目打包测试

3. docker配置

3.1  服务器端配置

3.2 开发IDEA配置

3.3 创建dockerfile


写在前面: 这博客一晃鸽了好久了,其实不是没有创作,只是懒得写博客了.日常都记录在自己的语雀小本本上了.好久没有出保姆级教程了,这次忽然想通过idea直接部署到服务器,以前的过程有些忘了,没想到回过头来,又浪费几个小时踩坑,所以啊,同学们一定要记好笔记 !!!

废话不多说,开始干货教程.

1. 项目准备

 1. 一个好的保姆级别的项目就应该,从创建项目开始.

  • 项目服务器URL使用阿里云的国内镜像,原因有二:
    • 不用翻墙,搞的快
    • 官网不支持创建java8

2. 勾个快速启动的毛坯项目就差不多了.

3. 项目创建完成后,阿里云会给创建demo接口.我们就直接拿过来测试用.项目的精神面貌和下面这样:

4. 创建新项目后,必须要做的两步检查!!!!

(1) 点击设置 -> 项目结构

        配置项目结构SDK和语言级别.

        配置模块 下的源和依赖 的语言级别和模块SDK.

(2) 检查设置 -> 构建\执行\部署 -> 构建工具 -> Maven,确保为你本地配置.

5. 环境已备,一键起飞

        找到启动类, 启动测试一下. 都是ok的.

        进入浏览器访问,也是正常的.

2. 项目打包测试

1. 项目打包测试,其实是有坑的.时间长了,有些配置忘了,再次排除问题就会很浪费时间.

需要记住,将pom文件中的,这样打出的jar才可以通过java -jar 执行

skip>true</skip> 更改为  skip>false</skip> 

 关于这个参数我就不多赘述了,可以自定AI提问学习一下.

2.  执行maven的clean 和package

3. 进入到target目录下

4. 执行 java -jar jar名称

 5. 网页测试都是ok的

3. docker配置

3.1  服务器端配置

1. 进入服务器,查看docker配置

vim /etc/docker/daemon.json

{
    "data-root": "/var/lib/docker",
    "log-driver": "json-file",
    "log-level": "warn",
    "log-opts": {
        "max-file": "3",
        "max-size": "10m"
    },
    "max-concurrent-downloads": 10,
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "http://hub-mirror.c.163.com",
        "https://docker.m.daocloud.io",
        "https://ghcr.io",
        "https://mirror.baidubce.com",
        "https://docker.nju.edu.cn"
    ],
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2375"
  ]
}

 这里需要注意的是hosts配置,远程开放端口为2375.(上述配置可直接复制.)

2. 重新启动docker服务

systemctl restart docker

踩坑记录:

        这里有可能会出现冲突,如果出现问题,执行,然后将我框起来地方修改为和我一致.

sudo vim /usr/lib/systemd/system/docker.service

这里补充几个快捷命令:

1. 查看docker日志

journalctl -u docker.service --no-pager

2. 查看远程端口状态

netstat -tuln | grep 2375

3. 完成docker重启后,开放防火墙端口

sudo firewall-cmd --permanent --add-port=2375/tcp
sudo firewall-cmd --reload

很好,到此处,服务端配置已经完成.

3.2 开发IDEA配置

1. 插件准备

        idea应用商店下载docker插件,如下所示:

2. 进入 设置 -> 构建\执行\部署 -> Docker 下, 新增 doker配置.如下所示:

  • 勾选 右侧的TCP套接字
  • 输入引擎URL,这里为ip为你服务器的ip,端口号保持不变: tcp://192.168.64.155:2375 
  • 如果连接成功,下方会进行提示.

3. 配置启动

(1) 点击编辑配置

(2) 左上角点击➕,然后选择Docker - > Dockerfile

  • 配置执行前项目到打包清理命令
clean package -U -DskipTests

点击应用,然后确定,

3.3 创建dockerfile

        1. 在项目的根目录下创建dockerfile,如下所示:

内容如下:

# 使用 OpenJDK 8 基础镜像
FROM openjdk:8

# 暴露 8080 端口
EXPOSE 8080

# 定义 JAR_FILE 参数,默认值为你打包的 JAR 文件名
ARG JAR_FILE=docker-test-demo-0.0.1-SNAPSHOT.jar

# 将构建的 JAR 文件添加到容器中,并重命名为 docker-test-demo-1.jar
ADD target/${JAR_FILE} /docker-test-demo-1.jar

# 设置启动命令
ENTRYPOINT ["java", "-jar", "/docker-test-demo-1.jar"]

2. 执行配置的docker-start

构建日志:

容器启动日志:

3. 网页访问测试

开放端口:
sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --reload

很好,现在已经大功告成! 接下来, 你就可以愉快的摸鱼了.文章全程从项目创建到部署配置,有图有结果, 真实可靠,同学少走弯路吧~

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

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

相关文章

IP地址类型选择指南:动态IP、静态IP还是数据中心IP?

你是否曾经困惑于如何选择最适合业务需求的IP地址类型&#xff1f;面对动态IP、静态IP和数据中心IP这三种选择&#xff0c;你是否了解它们各自对你的跨境在线业务可能产生的深远影响&#xff1f; 在跨境电商领域&#xff0c;选择合适的IP类型对于业务的成功至关重要。动态IP、…

UART在Linux内核启动时突然不打印的问题

国庆前一天收到的任务&#xff0c;在一颗比较成熟的芯片的SDK基础上&#xff0c;移植一个新内核&#xff0c;让它能够在bitfile下跑在FPGA上。 看了芯片设计那边给的文档&#xff0c;对比过去的那颗&#xff0c;感觉也就改改寄存器&#xff0c;中断号&#xff0c;时钟&#xff…

聚焦AI|智享AI直播三代模型的出现,打破传统直播束缚!

聚焦AI|智享AI直播三代模型的出现&#xff0c;打破传统直播束缚! 在数字化浪潮的推动下&#xff0c;直播行业正经历着前所未有的变革与升级。其中&#xff0c;智享AI直播三代模型的出现&#xff0c;无疑成为了业界关注的焦点。这一创新技术不仅引发了关于无人直播未来发展方向的…

18709 魔法

### 思路 为了将所有白色奶牛排在前面&#xff0c;黑色奶牛排在后面&#xff0c;我们可以考虑两种策略&#xff1a; 1. 将所有的奶牛都变成白色。 2. 将所有的奶牛都变成黑色。 我们需要计算这两种策略所需的最少次数&#xff0c;并选择其中较小的一个。 具体步骤如下&#x…

从加载到对话:使用 Llama-cpp-python 本地运行量化 LLM 大模型(GGUF)

&#xff08;无需显卡&#xff09;使用 Llama-cpp-python 在本地加载具有 70 亿参数的 LLM 大语言模型&#xff0c;通过这篇文章你将学会用代码创建属于自己的 GPT。 建议阅读完 19a 的「前言」和「模型下载」部分后再进行本文的阅读。 代码文件下载 - Llama-cpp-python 文章目…

AI智能体:共塑企业变革新纪元,引领未来无限潜能

当我们被《银翼杀手2049》或《机械公敌》等科幻大片中那些远超人类能力、能够自主判断并行动的人工智能所震撼时&#xff0c;AI时代的“智能体”已经悄然渗透进我们的工作生活中&#xff0c;成为引领企业变革的先锋力量&#xff0c;将我们带入一个全新的纪元。 ​从辅助到共生&…

【Unity】背景图片随着背景里面内容大小而变化

今天制作项目里面的设置界面和暂停界面时&#xff0c;发现两个界面有很多重复部分&#xff0c;所以直接做一个界面就行了&#xff0c;但是两个界面的背景大小会有变化&#xff0c;图片在下面 这个是游戏暂停界面的&#xff0c;设置界面和这个界面有很多重复地方&#xff0c;仅仅…

学习博客写作

欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

安卓手机平板远程访问内网服务器中安装的code-server编程开发实战

文章目录 前言1.Ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 前言 本文主要介绍如何在Linux Ubuntu系统安装code-server&#xff0c;并结合cpolar内网穿透工具配置公网地址&#xff0c;轻松实现使用安…

SQL 干货 | 使用 Having 子句筛选聚合字段

如果你编写 SQL 查询已有一段时间&#xff0c;那么你可能对 WHERE 子句非常熟悉。虽然它对聚合字段没有影响&#xff0c;但有一种方法可以根据聚合值过滤记录&#xff0c;那就是使用 HAVING 子句。本博客将介绍它的工作原理&#xff0c;并提供几个在 SELECT 查询中使用它的示例…

计次卡魔都千丝冥缘应用———未来之窗行业应用跨平台架构

一、魔都千丝冥缘作用 在本次卡购买种&#xff0c;涉及卡包表单、次卡表单&#xff0c;商品表单&#xff0c;提成表单&#xff0c;支付方式表单&#xff0c;职员表单 并且在商品表和次卡表单字段一样&#xff0c;元素name名称一样。 未来之窗魔都千丝冥缘&#xff0c;将功能…

字节跳动青训营开始报名了!

关于青训营&#xff1a; 青训营是字节跳动技术团队发起的技术系列培训 &人才选拔项目;面向高校在校生&#xff0c;旨在培养优秀且具有职业竞争力的开发工程师。 本次技术训练营由掘金联合豆包MarsCode 团队主办课程包含前端、后端和 A 方向&#xff0c;在这个飞速发…

高频股票期货ETF历史高频数据源

【数据源】 银河金融数据库&#xff08;yinhedata.com&#xff09; 提供金融数据股票、美股、期货以及ETF等高频tick数据&#xff0c;分钟级别数据。 MACD背离是指MACD指标与价格走势之间发生的方向性差异&#xff0c;这通常被视为市场可能发生趋势反转的信号。以下是一个具体…

GS-SLAM论文阅读笔记-CG-SLAM

前言 这是一篇不是最新的工作&#xff0c;我之前没有阅读&#xff0c;但是我前几天阅读GLC-SLAM的时候&#xff0c;发现它的一部分内容参考了CG-SLAM&#xff0c;并且CG-SLAM最近被ECCV2024接收&#xff0c;说明这是一片值得参考的好文章&#xff0c;接下来就阅读一下吧&#…

数据库——表格之间的关系(表格之间的连接和处理)

数据库表格之间经常存在各种关系&#xff1a; 一对一、一对多、多对多 1.一对一 —— 丈夫表&#xff0c;妻子表为例 连接方式一&#xff1a;合并为一张表 这种方式对于一对一来说最优 连接方式二&#xff1a;在其中一张表内加入一个外键&#xff0c;连接另一张表 连…

Windows搭建Java开发环境(Building a Java development environment on Windows)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

开发日志:IIS安全配置

为了解决IIS文件路径泄漏问题&#xff0c;可以采取以下措施&#xff1a; 一. 详细操作 1. CMD关闭NTFS 8.3文件格式的支持 命令行&#xff1a;fsutil 8dot3name set 1 2. 修改注册表禁用短文件名功能 CMD输入regedit回车&#xff0c;在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\C…

003 Springboot操作RabbitMQ

Springboot整合RabbitMQ 文章目录 Springboot整合RabbitMQ1.pom依赖2.yml配置3.配置队列、交换机方式一&#xff1a;直接通过配置类配置bean方式二&#xff1a;消息监听通过注解配置 4.编写消息监听发送测试5.其他类型交换机配置1.FanoutExchange2.TopicExchange3.HeadersExcha…

6. 继承、重写、super、final

文章目录 一、重新定义需求二、继承1. 继续分析2. 概念3. 代码① 父类② 子类③ 测试结果 4. 饿狼传说之多层继承① 概念② 代码 5. 多继承 三、方法的重写1. 情境2. 代码① 吃什么② 怎么叫(Override重写) 3. 小结 四、super1. 啃老2. 啃老啃到底 五、final1. 用途及特征2. 举…

【Python爬虫系列】_025.关于互斥锁(Lock)

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈