我正在尝试清理/修复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应用程序,以便它可以进行更改吗?如果知道了,我会发布。
您必须执行push
来更新在重新启动,重新分期或重新缩放时使用的内容。
本地测试。