我的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-compose up它旋转mysql并且也进行链接时,我的要求是当myImage旋转时,我想要执行一些knex迁移。 试过两种方式:
应用程序映像依赖于包json文件中的knex,我也可以在节点模块目录中看到knex模块。
但是在任何一种情况下我都会因缺少knex脚本而出错:
npm ERR! missing script: knex
对上述任何建议都表示高度赞赏。
答案 0 :(得分:0)
npm run missing-script
会出现错误npm ERR! missing script: missing-script
。
scripts: {
knex: "knex"
}
npm install
?可能不是这个,但如果从package.json中正确找到knex
脚本可能是必要的
npm run knex -- migrate:latest --knexfile src/knexfile.js