ECS容器执行Mikro-ORM迁移成功后无法退出,求解决方案
解决ECS容器中Mikro-ORM迁移后不自动退出的问题
试试这几个可行方案:
方案1:直接执行迁移命令(推荐)
跳过bash包裹,让npx mikro-orm migration:up直接作为容器的PID 1进程,命令执行完成后进程自动终止,容器随之退出:
"command": [ "npx", "mikro-orm", "migration:up" ]
方案2:用exec替换bash进程
如果必须通过bash执行命令,使用exec让npx取代当前bash进程,这样npx执行结束后,容器会因为PID 1进程终止而退出:
"command": [ "/bin/bash", "-c", "exec npx mikro-orm migration:up" ]
方案3:强制等待子进程并退出
如果Mikro-ORM迁移命令存在残留子进程未结束,用wait确保所有子进程完成后再退出:
"command": [ "/bin/bash", "-c", "npx mikro-orm migration:up; wait; exit $?" ]
额外排查点
可以手动在容器内测试迁移命令的退出状态:运行npx mikro-orm migration:up后执行echo $?,如果返回0说明迁移成功且命令正常退出;如果返回非0值,需要排查Mikro-ORM配置或迁移脚本本身的问题。
内容的提问来源于stack exchange,提问作者Dale
相关产品推荐
相关产品推荐

