若依 FastAPI + Vue3 項目 Docker 部署筆記( 啟動器打包教程)

本文記錄了將 start.bat 打包成 .exe 啟動器的詳細教程,適合項目交付或導師演示用。


🧭 一、如何將 start.bat 打包為啟動器 .exe(含圖標 + 自動打開瀏覽器)

? 1. 創建三大功能腳本

start.bat ? ? ?→ 啟動項目(docker compose up -d)
build.bat ? ? ?→ 構建鏡像(docker compose build)
restart.bat ? ?→ 重置數據庫并重啟(docker compose down -v)?

🔧 這三個腳本要放在你項目根目錄,便于后續統一調用。


? 2. 寫一個啟動器界面:launcher.py

使用 Python 的 tkinter 創建一個簡單圖形界面:

import tkinter as tk
import subprocess
import webbrowser

def run_script(script_name):
? ? try:
? ? ? ? subprocess.Popen([script_name], shell=True)
? ? ? ? if script_name == "start.bat":
? ? ? ? ? ? webbrowser.open("http://localhost:8080")
? ? except Exception as e:
? ? ? ? print(f"Error running {script_name}: {e}")

win = tk.Tk()
win.title("RuoYi Docker 啟動器")
win.geometry("300x200")
win.resizable(False, False)

tk.Label(win, text="請選擇操作", font=("微軟雅黑", 12)).pack(pady=15)
tk.Button(win, text="? 快速啟動項目", width=30, command=lambda: run_script("start.bat")).pack(pady=5)
tk.Button(win, text="🛠 構建鏡像", width=30, command=lambda: run_script("build.bat")).pack(pady=5)
tk.Button(win, text="🔄 重置并重建環境", width=30, command=lambda: run_script("restart.bat")).pack(pady=5)

win.mainloop()

?

保存為 launcher.py?

? 3. 準備 .ico 圖標文件

你可以從 icoconverter.com

上傳一張 PNG 圖片,轉換為 .ico 圖標,保存為:

ruoyi.ico

?(我設置的visual.ico)

放在和 launcher.py 同一個目錄下。

? 4. 使用 PyInstaller 打包為 .exe

打開命令行,切換到 launcher.py 所在目錄,執行:

pip install pyinstaller
pyinstaller --noconfirm --onefile --noconsole --icon=ruoyi.ico launcher.py

你將得到:

dist/launcher.exe     ← 可直接分發使用

?(我已改名visual.exe)

? 無黑框、圖標已設置、點擊后可彈窗選擇并執行 .bat 腳本。

📦 5. 推薦打包目錄結構

RuoYi-Docker-Starter/
├── launcher.exe
├── start.bat
├── build.bat
├── restart.bat
├── docker-compose.yml
├── backend/
├── frontend/

📤 打包建議

將該目錄壓縮為 RuoYi-Docker-Starter.zip,發送給其他人直接解壓即可使用。

注意: 圖中多出來的文件我沒有刪除(用筆劃掉的都可以刪),要將dist里面的launcher.exe剪切到根目錄

?

?? 注意事項

  • 所有 .bat 文件必須與 .exe 在同一目錄;

  • 不要把路徑設為中文或有空格(易報錯);

  • 對方電腦必須安裝了 Docker 與 Docker Compose;

  • .ico 文件建議 256x256 像素以內,不能太大。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78268.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于springboot的金院銀行廳預約系統的設計及實現(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 隨著信息技術在管理上越來越深入而廣泛的應用,信息管理系統的實施在技術上已逐步成熟。信息管理系統是一個不斷發展的新型學科,任何一個單位要生存要發展,要高效率地把內部活動有機地組織起來,就必須建立與自身特點相適應的…

創意控制臺:下雨動畫特效(ASCII 雨滴下落)

在編程的世界里,控制臺不僅僅是輸出文本信息的工具,通過巧妙的代碼設計,我們還能在其中創造出充滿趣味的動態畫面。本文將帶領大家使用 C 語言打造一個創意控制臺下雨動畫特效,利用 ASCII 字符模擬雨滴下落的過程,為單…

MySQL--索引入門

MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取數據的數據結構。 Mysql在存儲數據之外,數據庫系統各種還維護著滿足特定查找算法的數據結構,這些數據結構以某種引用(指向)表中的數據…

MIT XV6 - 1.2 Lab: Xv6 and Unix utilities - pingpong

接上文 MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - user/_sleep 是什么?做什么? pingpong 不務正業了那么久(然而并沒有,雖然還在探索sleep,但是教材我已經看完了前三章了),讓我們趕緊繼續下去 在進行本實驗之前請務…

前端面經-VUE3篇(二)--vue3組件知識(一)組件注冊、props 與 emits、透傳、插槽(Slot)

組件允許我們將 UI 劃分為獨立的、可重用的部分,并且可以對每個部分進行單獨的思考。在實際應用中,組件常常被組織成一個層層嵌套的樹狀結構: 一、注冊 Vue 組件本質上是一個可以復用的 自定義 HTML 元素,為了在其他組件中使用一…

LeetCode —— 102. 二叉樹的層序遍歷

😶?🌫?😶?🌫?😶?🌫?😶?🌫?Take your time ! 😶?🌫?😶?🌫?😶?🌫?😶?🌫?…

Linux第20節 --- inode和文件系統

一、沒有被打開的文件 如果一個文件沒有被打開,那么該文件存儲在哪里? 該文件是存儲在磁盤當中的! 文件 文件內容 文件屬性! 文件的內容是按照數據塊存儲的;文件的屬性其實就是inode(是一個128字節的…

1.PowerBi保姆級安裝教程

1.進入power bi網站 PowerBi下載鏈接 2.下載power bi軟件 3.雙擊安裝 4.下一步 5.下一步 6.下一步 7.下一步 8.安裝 9.雙擊桌面圖標

Android Studio中OpenCV應用詳解:圖像處理、顏色對比與OCR識別

文章目錄 一、OpenCV在Android中的集成與配置1.1 OpenCV簡介1.2 在Android Studio中集成OpenCV1.2.1 通過Gradle依賴集成1.2.2 通過模塊方式集成1.2.3 初始化OpenCV 1.3 OpenCV基礎類介紹 二、指定區域圖像抓取與對比2.1 圖像抓取基礎2.2 指定區域圖像抓取實現2.2.1 從Bitmap中…

前端面試每日三題 - Day 22

今天我們將深入探討 JavaScript 中的 Set 和 Map 數據結構,了解它們的特性及應用場景。接下來,我們會分析 React 的 Suspense 和 Concurrent Mode 的工作原理,探索它們如何提升應用的性能和用戶體驗。最后,我們將學習如何設計一個…

[Vue]編程式導航

在 Vue 中&#xff0c;編程式導航是通過 JavaScript 代碼&#xff08;而非 <router-link> 標簽&#xff09;動態控制路由跳轉的核心方式。這個方法依賴于 Vue Router 提供的 API&#xff0c;能更靈活地處理復雜場景&#xff08;如異步操作、條件跳轉等&#xff09;。 一、…

鄒曉輝教授十余年前關于圍棋程序與融智學的思考,體現了對復雜系統本質的深刻洞察,其觀點在人工智能發展歷程中具有前瞻性意義。我們可以從以下三個維度進行深入解析:

鄒曉輝教授十余年前關于圍棋程序與融智學的思考&#xff0c;體現了對復雜系統本質的深刻洞察&#xff0c;其觀點在人工智能發展歷程中具有前瞻性意義。我們可以從以下三個維度進行深入解析&#xff1a; 一、圍棋程序的二元解構&#xff1a;數據結構與算法的辯證關系 1.1.形式…

The Traitor King (10 player 25 player)

The Traitor King 十字軍試煉尾王成就。叛變的國王&#xff1a;在30秒內殺死40只蟲群甲蟲。考驗團隊配合的成就。比不朽者&#xff0c;黑曜石31等等強度大&#xff0c;甚至感覺比寶庫地風火難。

數據結構一 單鏈表

1.單鏈表 1.數據結構簡介 程序數據結構算法 數據 數據&#xff08;data&#xff09;是客觀事物的一個符號表示 數據元素&#xff08;data element&#xff09;是數據的基本單位&#xff0c;一 個數據元素可以由若干個數據項&#xff08;data item&#xff09;組成。數據項…

GPU集群監控系統開發實錄:基于Prometheus+Grafana的算力利用率可視化方案

一、科研場景下的GPU監控痛點 在深度學習模型訓練、分子動力學模擬等科研場景中&#xff0c;GPU集群的算力利用率直接影響著科研效率。筆者在參與某高校計算中心的運維工作時&#xff0c;發現以下典型問題&#xff1a; 資源黑洞現象&#xff1a;多課題組共享GPU時出現"搶…

【計算機視覺】三維重建: MVSNet:基于深度學習的多視圖立體視覺重建框架

MVSNet&#xff1a;基于深度學習的多視圖立體視覺重建框架 技術架構與核心算法1. 算法流程2. 關鍵創新 環境配置與實戰指南硬件要求安裝步驟數據準備&#xff08;DTU數據集&#xff09; 實戰流程1. 模型訓練2. 深度圖推斷3. 點云生成 常見問題與解決方案1. CUDA內存不足2. 特征…

智能家居的OneNet云平臺

一、聲明 該項目只需要創建一個產品&#xff0c;然后這個產品里面包含幾個設備&#xff0c;而不是直接創建幾個產品 注意&#xff1a;傳輸數據使用到了不同的power&#xff0c;還有一定要手機先聯網才能使用云平臺 二、OneNet云平臺創建 &#xff08;1&#xff09;Temperatur…

aidermacs開源程序使用 Aider 在 Emacs 中進行 AI 配對編程

一、軟件介紹 文末提供程序和源碼下載 Aidermacs 通過集成 Aider&#xff08;最強大的開源 AI 配對編程工具之一&#xff09;為 Emacs 帶來了 AI 驅動的開發。如果您缺少 Cursor&#xff0c;但更喜歡生活在 Emacs 中&#xff0c;Aidermacs 提供了類似的 AI 功能&#xff0c;同…

加密算法(一)-對稱加密(DES、AES、3DES、Blowfish、Twofish)一篇了解所有主流對稱加密,輕松上手使用。

一、對稱加密算法 對稱加密算法采用相同的密鑰來進行加密和解密操作。其優點是加密和解密速度快&#xff0c;不過密鑰的管理和分發存在一定的安全風險。 1.1、DES(已不推薦使用) 這是早期的對稱加密算法&#xff0c;密鑰長度為 56 位。但由于密鑰長度較短&#xff0c;如今已不…

深度優先VS廣度優先:算法選擇的核心邏輯與實戰指南

摘要 深度優先搜索&#xff08;DFS&#xff09;與廣度優先搜索&#xff08;BFS&#xff09;是圖結構遍歷與路徑分析的基礎算法&#xff0c;也是最常見的搜索框架&#xff0c;在路徑規劃、社交網絡分析、游戲AI等領域均有廣泛應用。本文從算法思想、數據結構選擇、時空復雜度和…