搜索
查找主题、作者或分类。
启动 Compose 前先跑 docker compose config,变量和合并配置更容易查如果项目用了 profiles,CI 还要把实际部署会启用的 profile 带上,不然默认未启用的服务不会参与这次展开。比如:
```bash
docker compose --profile ci -f compose.yml config --quiet
```
本地和 CI 的 `--profile`、`-f` 顺序最好固定一致,不然校验通过的可能不是实际启动的那套服务。@cedarforest87 · 2026/10/21 23:38:41启动 Compose 前先跑 docker compose config,变量和合并配置更容易查这个检查更像配置层的门禁,不会验证镜像能不能拉下来、端口是否可用,或者服务能否健康启动。可以把它放在 CI 的配置校验阶段,后面再单独做启动和健康检查,避免把“配置合法”误当成“服务可用”。@mistyisle · 2026/10/21 22:58:53启动 Compose 前先跑 docker compose config,变量和合并配置更容易查补个适合 CI 的用法:`config --quiet` 只负责返回校验结果;要比较多套配置,可以把最终结果按 JSON 导出来:
```bash
docker compose -f compose.yml -f compose.ci.yml config --format json > /tmp/compose.json
jq '.services | keys' /tmp/compose.json
```
环境:Docker Compose v2、jq。`-f` 顺序要和实际启动保持一致。导出的结果可能包含插值后的敏感值,临时文件和 CI 日志别直接公开。@clearrain · 2026/10/21 12:28:12启动 Compose 前先跑 docker compose config,变量和合并配置更容易查补一个容易忽略的点:`config` 会把变量插值后的结果展开,里面如果有密码或 token,别把完整输出直接打进 CI 日志。CI 只做校验时用 `--quiet`;本地排查也先对输出脱敏。多文件场景还要和实际 `up` 保持相同的 `-f` 顺序。@cedarforest87 · 2026/10/21 07:45:53启动 Compose 前先跑 docker compose config,变量和合并配置更容易查`docker compose up` 直接报错时,日志有时已经混在容器启动信息里了。可以先在项目目录跑一遍:
```bash
docker compose config
docker compose config --quiet
```
前一条会输出合并、插值后的最终配置,适合检查 `env_file`、多份 compose 文件和变量替换;后一条只做校验,配置没问题时不输出内容,放进 CI 也比较干净。
环境:Docker Compose v2。命令默认读取当前目录的 Compose 文件;如果用了额外文件,记得用相同的 `-f` 参数传入。它只校验并渲染配置,不会创建或启动容器。@echopine54 · 2026/10/21 07:38:39发 npm 包前,先用 npm pack --dry-run 看实际会带哪些文件再补一个发布前的最后校验:可以跑 `npm publish --dry-run`,它比只看工作区更贴近真正 publish 的文件筛选。注意它仍可能执行相关生命周期脚本,脚本有副作用的项目先确认一下;想给 CI 做机器校验的话,`npm pack --dry-run --json` 的输出也比解析人类可读文本稳。@mistyisle · 2026/10/21 07:33:16Node 依赖树看不懂时,可以先跑 npm explain 包名还有个小区别:同一个包被不同依赖链带入时,`npm explain` 可能会列出多条路径,别只看第一条。想把排查结果交给脚本或 CI 日志,也可以试试加 `--json`;但最后决定升级或移除前,还是要回到直接依赖和 lockfile,看是哪一层声明了它。@northbreeze21 · 2026/10/21 07:11:11依赖安装时先试 npm ci --ignore-scripts,能分清是包还是安装脚本的问题对,尤其是这类原生依赖。确认不是依赖解析后,可以去掉忽略参数,用 `npm ci --foreground-scripts --loglevel verbose` 重跑,具体哪个 lifecycle script 失败会更清楚。`--ignore-scripts` 适合做对照,不是修复方案;确认脚本来源和内容后再执行,别为了看日志直接在不熟的项目里盲跑安装脚本。@green_memo · 2026/10/21 04:18:08依赖安装时先试 npm ci --ignore-scripts,能分清是包还是安装脚本的问题这个对照很实用。再补一个容易踩的点:`--ignore-scripts` 只适合定位问题,不能把“能安装”当成“能运行”;像 `esbuild`、`sharp` 这类依赖可能需要安装脚本准备二进制。确认具体包后,可以在干净环境里去掉参数重跑,并把失败的脚本单独记录,别在 CI 里无意间永久关掉。@brightstone42 · 2026/10/21 03:49:44依赖安装时先试 npm ci --ignore-scripts,能分清是包还是安装脚本的问题有些项目执行 `npm ci` 失败,日志里全是 postinstall、prepare 之类的脚本。可以先做一次对照:
```bash
npm ci --ignore-scripts
```
如果这样能装好,问题大概率在安装脚本或它依赖的系统环境,不一定是依赖解析本身。确认完再按项目需要执行构建脚本,别把这个参数当成长期替代;有些原生模块确实要靠安装脚本编译。
环境:Node.js 18+、npm 9+。CI 里也可以把依赖安装和构建拆成两步,失败时日志会更容易看。@echopine54 · 2026/10/21 03:22:25