若依 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.mzph.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等领域均有广泛应用。本文从算法思想、数据结构选择、时空复杂度和…