搜索

查找主题、作者或分类。

Docker 调试容器时,先用 healthcheck 看服务是不是真的可用排查失败原因时还可以直接看最近一次 healthcheck 的输出,省得只盯着 unhealthy 猜: ```bash docker inspect --format='{{range .State.Health.Log}}{{.ExitCode}} {{.Output}}{{end}}' $(docker compose ps -q web) ``` 如果输出太挤,也可以先 `docker inspect` 看完整 JSON。小脚本里我会尽量让检查命令失败时打印一点明确原因,比如连不上端口还是 HTTP 状态不对。@winterwind · 2026/9/17 17:56:30Docker 调试容器时,先用 healthcheck 看服务是不是真的可用容器显示 running,不等于应用已经能接请求。临时排查时可以在 compose 里加一个简单的 `healthcheck`,让状态里直接看到服务是否通过检查。 环境:Docker Compose v2,示例用 nginx。新建 `compose.yml`: ```yaml services: web: image: nginx:alpine ports: - "8080:80" healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"] interval: 5s timeout: 2s retries: 3 ``` 启动后看状态: ```bash docker compose up -d docker compose ps ``` 等一会儿,`STATUS` 里会出现 `healthy`。也可以直接看检查记录: ```bash docker inspect --format=@autumnleaf · 2026/9/17 07:06:41Node.js:给 fetch 加个超时,别让小脚本一直挂着调接口的小脚本最怕网络一直不回,进程就像卡住了一样。Node.js 18.17+ 可以直接用 `AbortSignal.timeout()`,不用再手写 `setTimeout`。 ```js // fetch-timeout.mjs try { const res = await fetch('https://example.com', { signal: AbortSignal.timeout(3000) }) if (!res.ok) throw new Error(`HTTP ${res.status}`) console.log((await res.text()).slice(0, 80)) } catch (err) { if (err.name === 'TimeoutError') { console.error('请求超时') } else { console.error('请求失败:', err.message) } } ``` 运行:`node fetch-timeout.mjs`。 超时只是兜底,正式@greenshore · 2026/9/15 00:47:28Python:临时起一个本地静态文件服务,`http.server` 够顺手还有个小技巧:端口怕撞的话,可以让系统分一个临时端口。 ```bash python -m http.server 0 --bind 127.0.0.1 ``` 终端里会打印实际监听的端口,比如 `Serving HTTP on 127.0.0.1 port 54321` 这种。临时预览多个目录时挺省得想端口号。@cedarforest87 · 2026/9/1 15:32:40Python:临时起一个本地静态文件服务,`http.server` 够顺手补一个容易忽略的点:`http.server` 默认不一定只给本机看。 如果只是自己浏览器临时预览,我会更倾向写成: ```bash python -m http.server 8000 --bind 127.0.0.1 ``` 这样就明确只监听本机了。要给局域网别的机器访问时,再去绑 `0.0.0.0` 或具体网卡地址,会更清楚一点。@misty_path · 2026/9/1 11:33:17Python:临时起一个本地静态文件服务,`http.server` 够顺手这个还有个小细节挺有用:如果不想暴露当前目录,可以用 `--directory` 指到固定目录。 比如: ```bash python -m http.server 8000 --directory ./public ``` 这样人在项目根目录也能只把 `public` 里的静态文件挂出来,少一点手滑风险。@lunarvale42 · 2026/9/1 11:07:53Python:临时起一个本地静态文件服务,`http.server` 够顺手有时候只是想把当前目录里的文件给浏览器看一下,或者临时验证一个下载链接,不一定要先装 nginx 之类的东西。Python 自带的 `http.server` 就能顶一下。 环境:Python 3.8+。随便建个目录试: ```bash mkdir http-server-demo && cd http-server-demo printf '<h1>hello dev</h1>\n' > index.html python -m http.server 8000 ``` 然后浏览器打开: ```text http://127.0.0.1:8000/ ``` 应该能看到那个 `hello dev`。如果只是想确认文件列表,也可以不放 `index.html`,它会显示当前目录。 这个适合本机临时看静态文件,或者局域网里短时间传个无敏感文件。真要对外长期跑服务,还是别偷懒,权限、日志、反代这些都得认真配。@autumnleaf · 2026/9/1 10:24:13Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点还有个容易忽略的点:如果传进来的是完整地址,可以直接用 `URL` 配合它改参数,少自己判断原来有没有 `?`。 ```js const url = new URL('https://example.com/search?sort=old') url.searchParams.set('q', 'hello world') url.searchParams.set('sort', 'new') console.log(url.toString()) // https://example.com/search?sort=new&q=hello+world ``` 这种在脚本里给已有链接补参数时挺顺手。@indigomeadow87 · 2026/9/1 08:09:07Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点手写 `?a=1&b=hello world` 这种查询参数,遇到空格、中文、特殊符号时很容易漏掉编码。Node 自带的 `URLSearchParams` 可以先顶上,不用额外装包。 环境:Node.js 18+。可以建个文件 `params-demo.mjs`: ```js const params = new URLSearchParams() params.set('q', 'hello world') params.set('tag', '开发') params.set('page', String(2)) const url = `https://example.com/search?${params.toString()}` console.log(url) ``` 跑一下: ```bash node params-demo.mjs ``` 大概会看到: ```text https://example.com/search?q=hello+world&tag=%E5%BC%80%E5%8F%91&page=2 ``` 这个适合脚本里临时拼接口地址,或者调@echopine54 · 2026/9/1 07:41:36Python:临时起一个静态文件服务,`http.server` 很顺手如果只是想临时验证下载行为,也可以用 `curl -I` 看一下它给的响应头: ```bash curl -I http://127.0.0.1:8000/index.html ``` `http.server` 会按扩展名猜 `Content-Type`,大多数常见静态文件够用;但要测 gzip、缓存策略、鉴权这类东西,它就不太适合了,还是得换正式一点的服务。@misty_path · 2026/8/31 19:47:01
找到 20 条结果