Docker组成knex脚本错误

我的docker合成文件看起来像:

version: '2' services: web: build: context: . image: myimage environment: - AWS_REGION=region - NODE_ENV=development command: bash -c "sleep 10 && npm run knex migrate:latest --knexfile src/knexfile.js" depends_on: - db db: image: mysql ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_USER=root - MYSQL_PASSWORD=root - MYSQL_DATABASE=mydb volumes: - /var/lib 

这个想法是,当我做一个docker组成 – 它组成了一个mysql,并做了链接,我的要求是,当myImage旋转起来,有一些我想要执行的移植。 试过2种方法:

  1. 如上所示在泊坞窗撰写文件中添加命令。
  2. 如果没有命令,旋转容器,然后打开容器,然后运行knex migrate命令。

应用程序镜像在包json文件中对knex有依赖性,我也可以在节点模块目录中看到knex模块。

然而,在任何情况下,我得到一个错误的缺lessknex脚本:

 npm ERR! missing script: knex 

以上任何build议都非常感谢。

运行它时,你的package.json中的目录是否正确?

npm run missing-script给出错误npm ERR! missing script: missing-script npm ERR! missing script: missing-script ,如果脚本不存在。

你的package.json中有knex脚本吗?

 scripts: { knex: "knex" } 

在尝试运行迁移之前是否运行npm install

可能不是这个,但是如果在package.json中findknex脚本,可能是必须的

您可能需要添加 – 为了能够传递参数到npm运行脚本

 npm run knex -- migrate:latest --knexfile src/knexfile.js