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.pswp.cn/news/42113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42113.shtml
英文地址,請注明出處:http://en.pswp.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()方法返回的是某個數組的列表形式,返回的列表只是數組的另一個視圖,而數組本身并沒…