开发机是win10,调试运行啥的都在win10上,服务器是ubuntu22.04,cargo开发。
cargo目录下,src的各个子文件里分别分类包含了一些静态文件,即某些子rs文件调用的一些静态文件会放在相同文件夹下,方便查找静态文件调试,不一定把所有静态文件都放在专门的static文件夹下。
希望交叉编译到服务器上,上传到服务器的文件夹里,只保留可执行文件和若干静态文件,应该怎么操作部署,最佳实践是啥?
1
共 8 条评论, 1 页
评论区
写评论交叉构建也可以试试cargo-zigbuild, 不像cross需要docker(在win10下就要linux虚拟机了)环境,zigbuild是native的,当然如果需要动态链接第三方c库linux大概躲不掉;
仔细看了下,貌似就是加载进内存的,不过应该问题不大,静态文件大多数情况下本身就不大
--
👇
lithbitren: 不过有个小问题,rust-embed是否会把所有静态文件加载进内存里,尽管影响不太大
不过有个小问题,rust-embed是否会把所有静态文件加载进内存里,尽管影响不太大
谢谢大佬,简单看了下github,rust-embed可能是解决方案了,我试试。
之前我也是用cross交叉编译的,但程序都比较简单,静态文件都放static,具体的目录层级自己拷贝到线上再调试,也没碰到过什么太大的问题。
这次想规整规整代码,把内容类似前端那样组件化归置,就发现比较麻烦了。
--
👇
lsk569937453: 1.跨平台编译用cross(https://github.com/cross-rs/cross) 2.把静态文件打包到执行文件里用https://github.com/pyrossh/rust-embed
1.跨平台编译用cross(https://github.com/cross-rs/cross) 2.把静态文件打包到执行文件里用https://github.com/pyrossh/rust-embed
如果团队内部有自己的 DockerHub 私有容器仓库的话,做成镜像也行
“正规”一点的做法应该是使用 Jenkins 之类的 CI/CD
如果是简单起见可以用
cross build
替代cargo build
,然后写个 bat 脚本把静态资源和 bin 打包成 zip 再传到 Linux交叉rust不太行,你还是传源码到服务器上编