如何在Cloud Foundry上重启NodeJS应用(在更改代码后)

我正尝试在IBM的cloudfoundry实现中清理/修复现有的NodeJS应用。

在更改之间进行完整构建会杀死我,因此我使用cf ssh-code用法对SCP更改进行了脚本编写。这是脚本。我发现必须为此操作获取代码,因此将其粘贴到剪贴板(使用Windows中的剪辑)。提示您输入密码时,您只需按粘贴即可:

#!/bin/bash

ibmcloud cf ssh-code | sed -n '3 p' > one-time-ssh-code && clip < one-time-ssh-code
scp -P 2222 -o User=cf:<APP GUID>/<INSTANCE NUMber> $1 <SSH ADDRESS...cloud.ibm.com>:/home/vcap/app/$1

if [[ "$2" == "--restart" ]]
        then
                echo "Restarting Cloud Foundary app..."
                ibmcloud cf restart <APP NAME>
fi

为了进行测试,我在app.js中进行了更改以获取日志以显示服务器何时启动。我在不到一秒钟的时间内就完成了这些更改(比构建要快得多)...

$ ./scp-cf app.js
<THE ABOVE CREDENTIALS REFLECTED>'s password:
app.js                                                                                                                                                                100% 4936    32.7KB/s   00:00

我将ssh放入容器中

#!/bin/bash

ibmcloud cf ssh-code | sed -n '3 p' > one-time-ssh-code && clip < one-time-ssh-code
ssh cf:<APP GUID>/0@<SSH ADDR>.cloud.ibm.com -p2222

我可以看到文件刚刚更新!

现在,我将使用scp-cp app.js标志运行相同的--restart。我以为这会克服远程CF应用程序容器上没有节点-v或npm或yarn的所有未知数。

app.js                                                                                                                                                                100% 4936    31.7KB/s   00:00
Restarting Cloud Foundary app...
Invoking 'cf restart <APP NAME>

然后我在重新启动之前先查看我已更新的文件。它已从上一个完整版本恢复为文件...

我的意思是,无论如何我都无法使应用程序进行更改。我只对CF和构建管道很熟悉,但是我掌握了这一点,我确实需要通过约束来加快开发速度。

任何人都可以告诉我如何实际重启NodeJS应用程序,以便它能够进行更改?如果能解决,我会发布。

编辑:所以,看来我是在采取反CF行为。我仍然想做我要问的事情,因为不幸的是,我正在与一个具有零测试的现有项目一起工作,现在正处于紧急修复状态-仅通过日志调试,仅通过远程进行。

有人可以解释为什么我在这里看到节点:

vcap@id:~/app$ ps aux | grep node
vcap         140  0.0  0.0   4636   788 ?        S    17:53   0:00 sh -c node app.js
vcap         141  0.3  0.3 1085252 109356 ?      Sl   17:53   0:01 node app.js
vcap         198  0.0  0.0  63336  1104 pts/0    S+   17:59   0:00 grep --color=auto node

但是,不是这里:

vcap@id:~/app$ node -v
bash: node: command not found
yyfyxzt 回答:如何在Cloud Foundry上重启NodeJS应用(在更改代码后)

您必须执行push来更新重新启动,重新分期或重新缩放时使用的内容。

本地测试。

本文链接:https://www.f2er.com/3005731.html

大家都在问