TurboRepo Docker镜像优化指南:轻松打造轻量级镜像
最近往我的TurboRepo中添加了几个后端项目,然后使用Docker部署到服务器上,网上的TurboRepo的打包部署教程比较少,而且有些文章给的方法让Docker的镜像变得很大,所以我这里记录一下我是怎么减少镜像大小的。
最近往我的TurboRepo中添加了几个后端项目,然后使用Docker部署到服务器上,网上的TurboRepo的打包部署教程比较少,而且有些文章给的方法让Docker的镜像变得很大,所以我这里记录一下我是怎么减少镜像大小的。
这也是一篇公司内布道文章,因为GraphQL在已有服务的改造成本太高,在项目内没有引入,但是其中的很多概念和开发体验还是打动了一些同事。GraphQL目前的状态不温不火,加之一些同构RPC框架的出现,开发者的选择有了更多选项。至少笔者认为GraphQL至少让接口类型安全被重视。
本文记录了Png压缩库的调研过程,将优秀的imagequant Rust包编译成浏览器可用的WASM包,并通过Worker解决主线程阻塞的问题。
分享一下最近将官网和exportx.dev两个网站(Turborepo管理的)从Vercel迁移到Cloudflare Pages的过程,期间也使用了Github Action来做CI/CD自动化测试和部署,有兴趣的同学可以一起阅读交流下。
trpc本身的架构不似GraphQL那样复杂,没有DSL,没有Schema,没有复杂的类型系统,没有复杂的查询语言。类型定义是通过TypeScript的类型系统来定义的,查询语言是通过函数调用来定义的。这样的设计使得trpc的学习成本非常低,上手非常快。
首先我们得提前了解一下几个知识点:
RPC:Remote Procedure Call,远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 微服务:Microservices,是一种架构风格,是一种将单一应用程序划分为一组小的服务的方法,每个服务运行在自己的进程中,并与其他服务通过HTTP API进行通信。
direction: rightAlice -> John: "Hello John, how are you?"John -> Alice: "I feel great!"
Alice -> John: "John, can you hear me?"John -> Alice: "Hi Alice, I can hear you!"
Alice -> John: "Did you want to go to the game tonight?"John -> Alice: "Yeah! See you there."
使用tRPC制作网关
direction: downmain-server: main-server服务share: sharepub-auth: pub-authworker-gateway: worker-gatewayui: ui
main-server -> share: 依赖main-server -> pub-auth: 依赖main-server -> worker-gateway: 依赖share -> ui: 依赖pub-auth -> ui: 依赖worker-gateway -> ui: 依赖
direction: right
手动触发 -> 生成对应任务自动触发 -> Cron -> 生成对应任务
生成对应任务 -> { 访问对应网址 -> 保存mhtml -> 上传到R2 -> 生成对应PreviewURL}
插件 -> 预览 -> 上传 -> 解析 -> 存储 -> CDNPreview
保存mhtml -> { gateway -> worker -> postgre: 保存数据}
Cloudflare R2 预览svg的行为会变成下载,
© 2025 ABFree Co. All rights reserved.