MoreRSS

site iconSoulteary | 苏洋修改

十年代码生涯,参与新浪、淘宝、美团、阿里云项目,贡献于人工智能知识传播,业余热衷WordPress、Traefik、Docker及游戏。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Soulteary | 苏洋的 RSS 预览

三年后,我重写了 Nginx Formatter

2026-08-09 15:17:00

2023 年,我借助 AI 把两百多行 beautifier.js 嵌入 Go、通过 goja 执行,快速做出了 soulteary/nginx-formatter。三年后,为了让它在 CI 中更可靠,我用原生 Go 的 Lexer、Parser、AST 和 Printer 重写了格式化内核。本文记录 v2.0.0 到 v2.2.0 的三步重构:替换内核、支持单文件、用 Cobra 拆出 format、serve、version 子命令,并复盘转义丢失、单引号 JSON、Lua RawBlock 等历史问题的处理结果。

用 splitdns 管理 macOS 的开发域名解析

2026-08-09 09:27:00

延续之前用 Split DNS 提升跨系统双机开发体验的做法,手工维护 macOS 的 /etc/resolver 配置在设备和项目变多后越来越麻烦:覆盖前要备份、改完要刷新缓存、排错要在 dig、scutil 和 dscacheutil 之间来回切换。本文介绍我为此写的开源小工具 soulteary/splitdns,用来创建、修改和检查 Mac 上的 resolver 配置,并覆盖双机联动与单机使用两种场景。

使用 portmap 转发 Rootless Podman 的低位端口

2026-08-08 20:35:00

从 Docker Desktop 换到 Podman 后,Linux Rootless Podman 用 pasta 发布 80、443、22、53 这类低位端口时会因权限不足失败,把宿主机端口换成 8080 才能启动。本文介绍我为此写的小工具 soulteary/portmap:让 Rootless Podman 继续发布高位端口,再由宿主机上一个功能单一的进程提供标准端口入口。

WordPress SQLite Docker 镜像封装细节:两年后的升级

2026-08-08 17:35:00

两年前用不到三十行的 Dockerfile 把 WordPress、SQLite 和官方镜像拼在一起,两年后这个 Dockerfile 明显变长了。本文继续拆解 soulteary/docker-sqlite-wordpress,随着上游从 WordPress 6.5.2、PHP 8.3、SQLite Integration 2.1.9 升级到 WordPress 7.0.2、PHP 8.5、SQLite Integration 3.0.0-rc.8,SQLite 接入方式依旧靠 db.php 接管数据库层,新增代码主要集中在上游 Monorepo 组装、Rust 原生解析扩展、五种架构的多架构发布、旧数据卷自愈修复,以及后台只读的 SQLite Diagnostics 运行诊断页面。文章同时说明了根目录 Loader、id/ID 结果键兼容修复、挂载卷权限、WAL 备份与并发,以及需要核对实际 SQLite 引擎版本等容易忽略的限制。

从零重建 macOS 开发机:可复现的环境初始化流程

2026-06-14 20:36:00

趁着周末老设备磁盘告急,顺手做了一次完整的 macOS 迁移与开发环境重建,并把整个过程整理成一套可复用、可迁移、可重建的初始化方案。本文按照“从零恢复一台开发机”的顺序,依次展开:Xcode CLI 与系统基础工具链、Homebrew 包管理器、Oh My Zsh 与自动补全插件、基于 gpg-agent 统一托管 SSH/GPG 的 Git 签名体系,以及 Go(GVM)、Python(Miniforge)、Node.js(nvm)、Bun 四类多语言运行时的版本管理与隔离,每一步都给出可执行命令、真实日志输出和验证方式,最后补充新设备到手后的系统层面初始化清单。

把 MinIO 示例迁到 OtterIO:使用、部署与迁移验证

2026-06-09 22:34:00

前两篇文章把 OtterIO 的来龙去脉和代码线整理交代清楚了,这篇文章回到操作层面:如果过去的项目、文章示例、CI 环境或小型私有化部署里用了 MinIO,现在想切换到 OtterIO,应该怎么改镜像、怎么换环境变量、怎么部署、怎么验证迁移、哪些地方不兼容。文中给出一条 Docker 命令起 OtterIO、用 docker compose 跑多版本 MinIO 与 OtterIO 共存的可复现实验环境,再用 AWS CLI、s3cmd 通过标准 S3 API 把不同版本 MinIO 中的对象同步到 OtterIO,并用对象级 ETag/大小/数量做迁移校验,最后老老实实说明 mc admin、企业特性、商标与发行物层面的兼容边界。