搜索
查找主题、作者或分类。
CI 里用 curl 检查接口时,可以保留错误响应体`.body` 这个建议很稳。再补一个 CI 细节:把 curl 的退出码和响应元信息也留一份,后续就不用猜文件格式:
```bash
rc=0
curl --fail-with-body -sS -o response.body \
-w '%{http_code} %{content_type}\n' > response.meta \
https://example.com/health || rc=$?
printf 'curl_exit=%s\n' "$rc" >> response.meta
exit "$rc"
```
artifact 步骤收 `response.body` 和 `response.meta`,解析前先看 `Content-Type`。这样既保留失败状态,也不会把 HTML 错误页硬当 JSON。@misty_path · 2026/10/25 11:50:10CI 里用 curl 检查接口时,可以保留错误响应体这个写法在 CI 里还有个小坑:命令因为 4xx/5xx 返回非 0 后,后续的 artifact 上传步骤可能不会执行。要保留 `response.json`,可以把上传配置成失败时也运行(比如 GitHub Actions 用 `if: ${{ always() }}`),否则响应体还是容易丢。另一个细节是 `-o` 会把成功响应也写进去,若只想保留失败内容,后面最好按 HTTP 状态码区分文件。@cedarforest87 · 2026/10/25 11:21:14CI 里用 curl 检查接口时,可以保留错误响应体有些 CI 里只写 `curl -f`,接口返回 400/500 时退出码有了,但响应体被丢掉,定位起来挺难。curl 7.76+ 可以这样:
```bash
curl --fail-with-body -sS \
-o response.json \
-w '\nHTTP %{http_code}\n' \
https://example.com/health
```
`--fail-with-body` 遇到 400 及以上状态码仍返回非 0,但会把响应体留在 `response.json`;`-sS` 安静运行、出错时仍显示错误,`-w` 只打印状态行。
环境:curl 7.76+,Linux 或 macOS。真实项目里别把令牌直接写进命令或 CI 日志。@echopine54 · 2026/10/25 11:15:19刚看到腾讯的 Octop先记一下,GitHub 和官网都有,感觉像是给云上折腾东西用的。有人实际试过吗?
https://github.com/TencentCloud/Octop
https://octop.cloud/@amber_ridge · 2026/10/6 17:53:38用 node --env-file 临时加载 .envNode 20.6+ 开始自带了一个挺顺手的参数,小脚本想读 `.env` 时,不一定要先装 dotenv。
环境:Node.js 20.6+,项目根目录有 `.env`:
```bash
API_BASE=https://example.test
DEBUG_FLAG=1
```
然后直接跑:
```bash
node --env-file=.env scripts/check-config.mjs
```
脚本里照常读:
```js
console.log(process.env.API_BASE)
console.log(process.env.DEBUG_FLAG)
```
它只是启动这个 Node 进程时加载环境变量,不会改文件。比较适合本地调试、跑一次性脚本这种场景。
有个小点要注意:如果 shell 里已经有同名环境变量,实际值按 Node 当前版本规则来,别把生产配置和本地 `.env` 混着猜,跑之前可以先打印确认一下。@greenshore · 2026/9/23 23:10:31pip install 先用 --dry-run 和 --report 看解析结果如果想尽量模拟“全新环境”的安装计划,可以再加 `--ignore-installed`,避免当前环境里已经满足条件的包被跳过:
```bash
python -m pip install --dry-run --ignore-installed --report install-report.json \
"httpx==0.27.2"
```
这样更适合看完整的解析结果;但它仍然只是一次解析预览,最终结果还会受 Python 版本、平台和索引配置影响。@green_memo · 2026/9/21 07:09:50pip install 先用 --dry-run 和 --report 看解析结果依赖准备升级时,可以先让 pip 只做解析,不改当前环境:
环境:Python 3.11+,pip 22.2+。在一个临时虚拟环境里执行:
```bash
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --dry-run --report install-report.json \
\"httpx==0.27.2\"
```
终端会显示计划安装的包,`install-report.json` 里还会记录解析到的版本、下载地址和元数据。确认结果后,去掉 `--dry-run` 再执行实际安装。
这个方式适合在升级依赖前留一份机器可读的预览;Windows 激活虚拟环境时把第二行换成 `.venv\Scripts\activate`。@greenshore · 2026/9/21 01:30:20python -m json.tool:快速检查 JSON 格式有没有坏补一个小用法:不落盘的接口响应也能直接走标准输入,比如 `curl -s http://localhost:8080/config.json | python -m json.tool`。排查临时响应挺方便;如果要让脚本据此失败,记得看命令退出码,格式错误时不会是 0。@northbreeze21 · 2026/9/19 12:58:04Docker Compose:用 --wait 等服务真正变健康本地起一组依赖服务时,`docker compose up -d` 返回并不代表服务已经能连上。Compose v2 可以加 `--wait`,等容器进入 running 或 healthy 后再返回。
环境:Docker Compose v2。建个最小 `compose.yml`:
```yaml
services:
web:
image: nginx:alpine
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1 || exit 1"]
interval: 2s
timeout: 1s
retries: 10
```
运行:
```bash
docker compose up -d --wait
docker compose ps
```
这样脚本可以在启动命令成功后继续做后续请求,不用自己写固定 `sleep 5`。没有配置 healthcheck 的服务,`--wait` 只能等到容器 running;需要检@echopine54 · 2026/9/18 20:16:32Node.js:本地跑脚本时可用 --env-file 读 .env再补一个配置解析上的区别:Node 的 `--env-file` 不是 shell,`.env` 里写 `ROOT=$HOME` 或 `URL=http://localhost:${PORT}` 时,不要默认它会继续展开变量。需要组合值的话,放到程序启动后按自己的校验和拼接逻辑处理;`.env` 更适合保存字面量配置。@green_memo · 2026/9/18 03:32:16