Npm Docker compose运行多个脚本
我正在使用docker compose和一个yml文件来启动一个容器。我想调用package.json中的两个脚本:Npm Docker compose运行多个脚本,npm,docker-compose,fig,package.json,Npm,Docker Compose,Fig,Package.json,我正在使用docker compose和一个yml文件来启动一个容器。我想调用package.json中的两个脚本: "dev-start": "nodemon src/index.js", "dev-migrate": "db-migrate --migrations-dir src/migrations --config src/database.json up" 要调用一个I use命令:script name,如何调用多个脚本?如果要在应用程序运行时启动迁移,请使用docker exe
"dev-start": "nodemon src/index.js",
"dev-migrate": "db-migrate --migrations-dir src/migrations --config src/database.json up"
要调用一个I use命令:script name,如何调用多个脚本?如果要在应用程序运行时启动迁移,请使用docker exec-it name of container bash
在运行的容器中打开一个shell并执行该命令
如果需要在第一次启动应用程序之前运行迁移,请运行docker compose run name of service bash
,运行初始化数据库的命令,退出并正常启动docker compose
如果要在每次启动应用程序之前运行迁移,可以编写一个shell脚本来执行这两个操作(迁移,然后启动应用程序),将其复制到映像中,并将其作为默认命令调用
对于前两段,您还可以直接启动migration命令,而不是运行
bash
,在我看来,将迁移和服务器分开是更好的做法。
我总是这样做,就像我有两个服务,一个用于运行我的服务器,另一个用于将数据迁移到我的数据库,如果您认为将它们分开是有意义的,因为它们正在做两个不同的工作
services:
migrate:
build: .
command: db-migrate --migrations-dir src/migrations --config src/database.json up
depends_on:
- db
env_file:
- .env
web:
build: .
command: nodemon src/index.js
ports:
- 8000:8000
env_file:
- .env
depends_on:
- db
- migrate
db:
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
使用
命令:bash-c
使用命令:bash-c