You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS在Docker容器执行seed:ambassadors脚本提示missing script问题求助

问题:Docker容器内执行npm脚本提示找不到seed:ambassadors

通过docker-compose exec backend sh进入Docker容器后,执行npm run seed:ambassadors时收到如下错误:

npm ERR! missing script: seed:ambassadors

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-12-29T11_33_08_599Z-debug.log

本地package.json的scripts配置已包含该脚本:

"scripts": {
    "prebuild": "rimraf dist",
    "build": "nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "nest start",
    "start:dev": "nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/main",
    "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./test/jest-e2e.json",
    "seed:ambassadors": "ts-node src/command/ambassador.seeder.ts"
  },

已配置对应的docker-compose.yaml(附截图),求解决建议。


解决建议
  • 检查容器内的package.json:进入容器后执行cat package.json | grep seed:ambassadors,确认脚本是否存在。若不存在,说明镜像构建时未同步本地更新后的package.json,需重新构建镜像。
  • 验证挂载配置:查看docker-compose.yaml中backend服务的本地目录挂载规则,确认项目根目录(含package.json)是否正确映射到容器内对应路径。挂载错误会导致容器读取镜像内旧的package.json文件。
  • 检查镜像构建流程:若使用Dockerfile构建,确保文件中包含COPY package*.json ./命令,且构建时使用了最新的package.json。执行docker-compose build backend重新构建镜像。
  • 确认容器工作目录:进入容器后执行pwd,查看当前路径是否为项目根目录(package.json所在位置),若不是则切换到对应目录再执行脚本。
  • 清理npm缓存:在容器内执行npm cache clean --force,清除缓存后重新尝试运行脚本。

内容的提问来源于stack exchange,提问作者holoyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:31:13