我正在云代工厂部署应用程序。我还在部署之前运行db迁移。为此,我的启动命令如下所示:
./run_migration && ./run_app
这在1个实例上运行良好,但现在我有2个实例,因此启动命令更改为:
[ $CF_INSTANCE_INDEX != 0 ] || ./run_migration && ./run_app
这样,迁移仅在实例编号0上运行。这也可以。但是,一旦迁移失败。
2019-02-12T13:56:45.27+0100 [APP/PROC/WEB/0]OUT Exit status 1
2019-02-12T13:56:45.28+0100 [CELL/SSHD/0]OUT Exit status 0
OK
requested state: started
instances: 2/2
state since cpu memory disk
#0 starting 2019-02-12 01:56:36 PM 0.0% 0 of 1G 0 of 1G
#1 running 2019-02-12 01:56:39 PM 15.8% 93.3M of 1G 249.4M of 1G
据我所知,虽然只有一个实例能够开始,但这个puch被认为是健康的。
当并非所有实例都设法启动时,是否有一种方法可以使推送失败
当并非所有实例都设法启动时,是否有一种方法可以使推送失败
我不知道如何做到这一点,但你可以随时跟进并在cf push
完成后检查。
运行cf app <app> | grep 'instances:'
,您应该看到正在运行的号码和总请求数。如果他们不匹配某事。
如果你只是试图让你的部署脚本失败,那么做一个这样的检查,而更多的工作,应该就足够了。如果还有其他原因,您需要在问题中添加一些背景知识,以便我们更好地了解用例。
希望有所帮助!