armbian使用1panel快速部署部署springBoot项目后端

文章目录

  • 前言
  • 环境准备
  • 实现步骤
    • 第一步:Armbian安装1panel
    • 第二步:安装数据库
    • 第三步:查看数据库容器重要信息【重要】
      • 查看容器所在的网络
      • 查看容器连接地址
    • 第四步:项目配置和打包
    • 第五步:构建项目镜像

前言

  • 这里只是简单记录部署springboot项目后端的快速部署方法

环境准备

  • 一台linux服务器
  • 1panel
  • docker

实现步骤

第一步:Armbian安装1panel

  • 参考Armbian安装1panel教程
  • 由于1panel会自动安装docker,所以无需手动安装docker
  • 1panel配置镜像加速
    在这里插入图片描述

第二步:安装数据库

  • 在应用商店中,选择合适的数据库,安装即可
    在这里插入图片描述
  • 编辑相关配置
    在这里插入图片描述
  • 注意:记得打开外部访问,方便使用数据库软件连接数据库进行操作
  • 如果需要创建项目数据库,正常操作导入数据库文件即可

第三步:查看数据库容器重要信息【重要】

查看容器所在的网络

  • 因为,1panel应用商店安装的容器(默认添加到1panel-network),如果在部署项目使没有注意到mysql容器所在网络,没有正确填写项目mysql连接配置详细,贸然部署项目,会导致springboot连接不到mysql

查看容器连接地址

  • 容器连接地址用于部署项目的容器和mysql容器通信
    在这里插入图片描述

第四步:项目配置和打包

  1. 将yml文件中的数据库连接信息如ip、用户名、密码登录修改为正确信息
    • ip使用上一步查询到容器连接信息
    • 用户名和密码使用创建mysql容器时设置的
  2. 使用maven打包springboot项目(这个相信大家很熟悉了)

第五步:构建项目镜像

  1. 在Linux服务器中创建目录如:/usr/local/docker,然后将项目jar上传到该目录下(可以使用1panel面板进行目录创建和上传操作)
    在这里插入图片描述
  2. /usr/local/docker创建Dockerfile文件构建方便构建镜像
    • Dockerfile是一个文本文件,包含了构建Docker镜像所需的指令和配置
    FROM openjdk:8
    COPY ./spring-0.0.1-SNAPSHOT.jar /tmp/app.jar
    EXPOSE 8080
    ENTRYPOINT java -jar /tmp/app.jar
    
  3. 在终端执行命令
  • 进入创建的目录
cd /usr/local/docker/

  • 构建项目镜像
docker build -f ./Dockerfile -t app .
  • docker build: 构建Docker镜像的命令

  • -f ./Dockerfile: 指定Dockerfile的路径。./Dockerfile指定了Dockerfile文件的相对路径,即当前目录下的Dockerfile文件。

  • -t app: 用于为构建的镜像指定一个标签(tag)。在构建完成后可以通过app这个标签来标识这个镜像。

  • .: 构建上下文路径,指定了在哪个目录下查找Dockerfile和构建镜像所需的文件。.表示使用当前目录作为构建上下文,也就是Docker将会在当前目录下查找Dockerfile和其他需要的文件来构建镜像。


  • 部署项目
docker run  -d --name xx_demo -p 8080:8080 --network=1panel-network app
  1. docker run: 用于运行Docker容器

  2. -d: 用于在后台(分离模式)运行容器,不阻塞当前终端。

  3. --name xx_demo: 用于为运行中的容器指定一个名称

  4. -p 8080:8080: 将主机的端口映射到容器的端口。主机端口:容器端口

  5. --network=1panel-network: 将容器连接到指定的网络。这意味着容器可以与同一网络中的其他容器进行通信,也可以与该网络外部进行通信,具体取决于网络的配置。

  6. app: 这是在之前使用docker build命令构建的Docker镜像的名称。通过这个名称,Docker知道要在哪个镜像基础上运行容器。

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

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

相关文章

一次性解决office部署问题(即点即用等)

前言 因为之前电脑安装了office2019,后面需要安装Visio,下载安装时报错30204-44,查看发现之前安装的office版本是即点即用版,可能这两者不兼容。网上搜索教程等,最后发现一个工具:Office Tool Plus,可以方便…

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

生态流量(Ecological Flow, EF) 是指维持河道内生态环境所需要的水流流量。生态流量计算方法众多,主要分为水文学方法、栖息地模拟法、水力学方法、整体法等,各方法多用于计算维持河道生态平衡的最小生态流量(Minimum …

LeetCode 141.环形链表

文章目录 💡题目分析💡解题思路🔔接口源码💡深度思考❓思考1❓思考2 题目链接👉 LeetCode 141.环形链表👈 💡题目分析 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中…

【ES6】—let 声明方式

一、不属于顶层对象window let 关键字声明的变量,不会挂载到window的属性 var a 5 console.log(a) console.log(window.a) // 5 // 5 // 变量a 被挂载到window属性上了 , a window.alet b 6 console.log(b) console.log(window.b) // 6 // undefin…

原生js获取今天、昨天、近7天的时间(年月日时分秒)

有的时候我们需要将今天,昨天,近7天的时间(年月日时分秒)作为参数传递给后端,如下图: 那怎么生成这些时间呢?如下代码里,在methods里的toDay方法、yesterDay方法、weekDay方法分别用于生成今天、昨天和近7天的时间: <template><div class="box"&…

暂停Windows更新的方法,可延后数十万年,简单且有手就行

前言 近年来&#xff0c;Windows更新频率过快&#xff0c;最大只能暂停更新5周&#xff0c;导致用户不厌其烦&#xff0c;从网上找到的暂停更新的方法不是过于繁琐就是毫无效果&#xff0c;或者是暂停的时间有限&#xff0c;无意中发现一个大神的帖子可以通过修改注册表信息以达…

Java定时任务方案

一、Timer import java.util.Timer; import java.util.TimerTask;public class TimerExample {public static void main(String[] args) {Timer timer new Timer();TimerTask task new TimerTask() {Overridepublic void run() {System.out.println("Task executed at:…

uni-app自定义多环境配置,动态修改appid

背景 在企业级项目开发中&#xff0c;一般都会分为开发、测试、预发布、生产等多个环境&#xff0c;在工程化中使用不同的打包命令改变环境变量解决不同环境各种变量需要手动修改的问题&#xff0c;比如接口请求地址&#xff0c;不同环境的请求路径前缀都是不同的。在使用uni-…

Docker中为RabbitMQ安装rabbitmq_delayed_message_exchange延迟队列插件

1、前言 rabbitmq_delayed_message_exchange是一款向RabbitMQ添加延迟消息传递&#xff08;或计划消息传递&#xff09;的插件。 插件下载地址&#xff1a;https://www.rabbitmq.com/community-plugins.html 1、下载插件 首先需要确定我们当前使用的RabbitMQ的版本&#xff0c…

Android隐藏输入法

1、方法一(如果输入法在窗口上已经显示&#xff0c;则隐藏&#xff0c;反之则显示) InputMethodManager imm (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 2、方法二(view为接受软…

实践教程|基于 pytorch 实现模型剪枝

PyTorch剪枝方法详解&#xff0c;附详细代码。 一&#xff0c;剪枝分类 1.1&#xff0c;非结构化剪枝 1.2&#xff0c;结构化剪枝 1.3&#xff0c;本地与全局修剪 二&#xff0c;PyTorch 的剪枝 2.1&#xff0c;pytorch 剪枝工作原理 2.2&#xff0c;局部剪枝 2.3&#…

前端如何安全的渲染HTML字符串?

在现代的Web 应用中&#xff0c;动态生成和渲染 HTML 字符串是很常见的需求。然而&#xff0c;不正确地渲染HTML字符串可能会导致安全漏洞&#xff0c;例如跨站脚本攻击&#xff08;XSS&#xff09;。为了确保应用的安全性&#xff0c;我们需要采取一些措施来在安全的环境下渲染…

QString常用函数介绍

此篇博客核心介绍QT中的QString类型的常用函数&#xff0c;介绍到的函数均从帮助手册或其他博客中看到 QString 字符串类 Header: #include qmake: QT core 一、QString字符串转换 1、QString类字符串转换为整数 int toInt(bool *ok Q_NULLPTR, int base 10) cons…

Python 基础 -- Tutorial(二)

5、数据结构 本章更详细地描述了一些你已经学过的东西&#xff0c;并添加了一些新的东西。 5.1. 更多关于Lists 列表(list)数据类型有更多的方法。下面是列表对象的所有方法: list.append(x) 在列表末尾添加一项。相当于a[len(a):] [x]。 list.extend(iterable) 通过添加可…

如何使用SpringBoot 自定义转换器

&#x1f600;前言 本篇博文是关于SpringBoot 自定义转换器的使用&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的…

02-前端基础第二天-HTML5

01-HTML标签&#xff08;下&#xff09;导读 目标&#xff1a; 能够书写表格能够写出无序列表能够写出3~4个常用input表单类型能够写出下拉列表表单能够使用表单元素实现注册页面能够独立查阅W3C文档 目录&#xff1a; 表格标签列表标签表单标签综合案例查阅文档 02-表格标…

Nginx搭建本地服务器,无需购买服务器即可测试vue项目打包后的效果

一.前言 本文是在windows环境&#xff08;Linux环境下其实也大同小异&#xff09;下基于Nginx实现搭建本地服务器&#xff0c;手把手教你部署vue项目。 二.Nginx入门 1&#xff09;下载安装 进入Nginx官网下载&#xff0c;选择stable版本下的windows版本下载即可 2&#xff09;…

Ubuntu 20.04配置静态ip

ip配置文件 cd /etc/netplan配置 根据需求增加 # Let NetworkManager manage all devices on this system network:version: 2renderer: NetworkManager # 管理 不是必须ethernets:enp4s0: #网卡名dhcp4: no #关闭ipv4动态分配ip地址dhcp6: no #关闭ipv6动态分配…

Arrays.asList() 返回的list不能add,remove

一.Arrays.asList() 返回的list不能add,remove Arrays.asList()返回的是List,而且是一个定长的List&#xff0c;所以不能转换为ArrayList&#xff0c;只能转换为AbstractList 原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没…