V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
dream4ever
V2EX  ›  程序员

如何将一个网站的前端 + 后端打包至光盘中?

  •  
  •   dream4ever · 2021-08-11 09:34:32 +08:00 · 3097 次点击
    这是一个创建于 1226 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有一个业务,需要研究如何将一个网站打包到一张光盘中。

    网站的前端部分我觉得是比较好打包的,把静态资源放在网站目录下就行,HTML 和 JS 中写好相对路径的话,几乎都不用修改。

    问题在于后端部分,包括后端的程序和数据库。因为这个网站是合作方开发的,目前的信息有限,不知道后端程序用的是什么语言,也不知道用的是什么数据库。

    不过一般来讲,后端程序的话,在光盘里放上所需的运行环境,让用户安装一下,是不是就 OK 了?至于数据库的话,以我的了解,一般情况下,也把安装程序放在光盘里,让用户安装一下,然后执行一下脚本将数据导入数据库。后端部分这样操作一遍,是不是也就基本 OK 了?

    Rheinmetal
        1
    Rheinmetal  
       2021-08-11 09:46:03 +08:00
    docker 镜像 系统镜像 iso 更稳一点
    Rheinmetal
        2
    Rheinmetal  
       2021-08-11 09:46:50 +08:00
    rancher 等 k8s 发行版均支持 air gap 安装
    还有 k3s os 之类的东西
    dream4ever
        3
    dream4ever  
    OP
       2021-08-11 09:48:16 +08:00
    @Rheinmetal docker 的话,还得考虑一下系统是否支持 docker,比如用户如果装了 Windows 7 就没法用,也不可能让用户去重装一个 Windows 10,还是放对应软件的安装程序兼容性更广一些。

    另外系统镜像 ISO 指的是什么?操作系统?
    tabris17
        4
    tabris17  
       2021-08-11 09:49:14 +08:00
    这是个安装光盘还是 live 光盘?
    live 光盘的话,你直接刻一套 linux live 系统进去,配置好环境直接运行
    dream4ever
        5
    dream4ever  
    OP
       2021-08-11 09:51:06 +08:00
    @tabris17 给普通人用的,就不考虑 Linux 了……
    PolarBears
        6
    PolarBears  
       2021-08-11 10:00:31 +08:00
    我觉得可以考虑做成虚拟机,docker 之类的话我觉得不太合适,因为看起来你的需求用户可能不一定有多少专业知识。
    或者设计成后端第一次访问的时候会提示应用系统设置引导界面,在这里填写好数据库连接等信息就好,后端自己导入数据到数据库中。
    cadmuxe
        7
    cadmuxe  
       2021-08-11 10:03:53 +08:00
    关键要说清楚了什么叫打包:
    1. 强调了光盘,是不是 live 光盘?然后引导后系统里有网站?
    2. 是打包所有的程序和数据,备份一下?
    3 要制作成一个安装包 /程序,然后用户可以“安装”到目标机器?形成一个单机的网站?还是部署成正常的对外 /局域网网站?
    目标环境大概是啥样的,谁来用,大概的 usecase 是啥,都需要讲清楚了。不然大家没有办法帮你解决问题的。
    pckillers
        8
    pckillers  
       2021-08-11 10:04:44 +08:00
    后端与前端一样 给出文件 给出环境安装包 给出教程
    ztcaoll222
        9
    ztcaoll222  
       2021-08-11 10:24:32 +08:00
    给普通人用的...现在普通人家里哪还有光驱,建议用 u 盘
    dream4ever
        10
    dream4ever  
    OP
       2021-08-11 10:58:58 +08:00
    @ztcaoll222 是要交到 ** 局进行审查的,明确要求只能用光盘。
    dream4ever
        11
    dream4ever  
    OP
       2021-08-11 11:12:41 +08:00
    @PolarBears 需要在用户自己电脑的操作系统中运行,所以虚拟机不考虑了。另外您说的后端设置引导界面是个好主意,只不过用户不懂开发,我打算略过引导界面,考虑自动安装。
    Saurichthys
        12
    Saurichthys  
       2021-08-11 11:17:04 +08:00
    买一个光盘刻录机,其他的操作就是等于你把你的前后端代码拷贝进 U 盘一样的操作而已
    circleee
        13
    circleee  
       2021-08-11 11:20:44 +08:00
    go 写的 前端也能打包到程序里面,一个 exe 就完啦
    ksc010
        14
    ksc010  
       2021-08-11 11:24:32 +08:00
    我上学的时候 给事业单位开发过一个管理系统 用的是 php
    CS 架构的 ,就是做的一键安装包 自动解压 安装, 然后运行 web 和数据库服务
    访问的时候 直接使用浏览器访问本地网址
    dream4ever
        15
    dream4ever  
    OP
       2021-08-11 11:24:36 +08:00
    @cadmuxe 非常感谢你的提问,很详细,我一一回答一下:

    1. 不是 Live 光盘,是用来提供安装包和运行环境的光盘。可简单类比为以前的电脑游戏光盘,需要先安装相关依赖,然后再运行光盘上的游戏。
    2. 见前一条。
    3. 是要制作成一个可安装的程序,离线部署到用户的电脑上,不对外提供服务,仅供用户在本机使用。
    dream4ever
        16
    dream4ever  
    OP
       2021-08-11 11:25:51 +08:00
    @ksc010 对,需要实现的就是你这样的效果,我去研究一下。
    fox0001
        17
    fox0001  
       2021-08-11 11:26:16 +08:00 via Android
    1 )用于审查的话,要问清楚,光盘里放的是代码还是执行程序。

    2 )运行的时候,是在光盘上直接跑,还是会安装到硬盘上再跑?如果是安装后再跑,那就只需要弄个安装程序,最多也就实现一键部署。

    3 )如果是在光盘上直接跑,运行时的文件放哪里?例如数据库文件、log 日志、临时文件之类。
    dream4ever
        18
    dream4ever  
    OP
       2021-08-11 11:28:50 +08:00
    @fox0001

    1. 光盘里放的是执行程序,不审查源代码,只审查最终产品。
    2. 这一点倒是没有要求,这么说的确弄个一键部署方便很多。
    3. 只是审查用,并不是长期运行,所以这些怎么方便怎么来。
    jswh
        19
    jswh  
       2021-08-11 11:32:06 +08:00
    可以用 vagrant,写好脚本一键部署虚拟机环境然后直接浏览器访问就行了。
    littlewing
        20
    littlewing  
       2021-08-11 11:57:31 +08:00
    把各种环境和代码都安装配置好的系统打成安装镜像,到时候重装系统
    GeruzoniAnsasu
        21
    GeruzoniAnsasu  
       2021-08-11 14:44:04 +08:00
    @dream4ever 审最终程序的话,基本上你打包一个你能跑的环境,人家自己能搞定的。事业单位搞技术的随便拎一个都是从 985 出来的,没你想的那么菜

    docker 封装就行了,再不济你把 docker 安装程序也放进去有啥不好解决的
    Rheinmetal
        22
    Rheinmetal  
       2021-08-11 15:09:30 +08:00
    Windows 的话虚拟机镜像呗 virtual box 支持 win7

    自己在一个全新安装 win7 上走一遍 步骤 写成文档
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:25 · PVG 12:25 · LAX 20:25 · JFK 23:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.