/images/avatar.png

Gotenberg 工程实践:从前端 URL 到可控 PDF 导出的完整落地

在很多后台系统中,“导出 PDF” 看似一个按钮,实则需要一条完整的渲染链路。本文记录一次基于 Gotenberg 的工程实践:从需求与技术选型出发,到 URL 转 PDF、登录态传递、前端打印模式、动态分页与 waitForExpression,再到 POC 验证、参数调优、批量导出与踩坑经验,抽取出可复用的落地思路。

Hugo LoveIt 主题迁移 GitHub Actions 实战:7 个避坑指南与最佳实践

本站原使用 GitHub Pages 的 “Deploy from branch” 模式部署,随着站点复杂度增加,在构建环境隔离、Secrets 管理和多平台同步上逐渐力不从心。本文记录将 Hugo + LoveIt 主题项目完整迁移至 GitHub Actions 过程中踩过的 7 个坑及对应解法,涵盖双仓库推送、代理配置、计费陷阱与版本控制等最佳实践。

Docker Engine 与 Docker Compose 版本兼容性全解析:从 V1 到 V5 的演进与选型指南

Docker Engine 与 Docker Compose 的版本搭配是容器化部署中极易被忽视却至关重要的兼容性问题。本文梳理 Compose 从 V1(Python)到 V2(Go)再到 V5 的版本演进史与完整兼容矩阵,解释为何版本号从 v2.40 直接跳跃到 v5.x。同时给出 Docker 25.0.0 的最佳适配版本推荐、V1/V2 架构与功能差异对比,以及生产环境的版本选择决策树和升级路径。

撕开 Calico 架构:为什么现代 CNI 执着于推行“三权分立”的 Namespace 帝国?

现代版本的 Calico 不再把所有组件挤在 kube-system 中,而是通过 Tigera Operator 开辟了 tigera-operator、calico-system、calico-apiserver 三个独立 Namespace。本文用大白话逐层剖析这一"三权分立"设计:如何打破网络插件的部署死锁、如何实现管理面与数据面解耦、以及如何通过聚合 API 让 kubectl 原生管理 Calico 网络资源。

虚拟机 IP 没变,为什么桥接转换 NAT 模式却摧残了我的 K8s 集群?

虚拟机 IP 没有变化,仅将 VMware 网络模式从桥接切换为 NAT,K8s 集群的控制平面却彻底瘫痪。本文按"网络 → 运行时 → 静态 Pod → Kubelet"的顺序记录完整的排查与原地修复过程,包括证书更新、kubeconfig 重建、静态 Pod 刷新和镜像地址替换,并剖析网络模式变更导致集群瘫痪的根本原因。

【自动化构建】BAT 批处理系统梳理:从基础语法、进阶用法到 Go 交叉编译工程脚本落地

手动执行 Go 交叉编译重复性高、效率低,Windows BAT 批处理可以快速实现本地构建自动化。本文从一段实际编译脚本切入,从零讲解 BAT 基础语法(变量、注释、错误判断等)和工程常用进阶写法(路径获取、静默输出、错误码退出)。最后精简落地三套可直接复用的 Go 编译批处理模板,覆盖日常编译、多端构建与版本发布场景。

基于 Docker Compose 部署 MySQL 8.0 生产实践指南

本文基于 Kylin V10/CentOS/RHEL 系列 + Docker 25.0.0 + Compose v2.24.1 环境,完整介绍 MySQL 8.0 容器化的生产部署实践。内容包括 MySQL 客户端安装、标准目录规划、my.cnf 生产级配置、docker-compose.yml 编排(含健康检查、资源限制、日志轮转),以及验证部署、自动备份脚本和故障排查速查表,最终交付一套数据持久化、自动拉起、可追溯的生产级数据库实例。