在Compute Engine上,使用MEAN的click-to-deploy选项,我们如何克隆本地创建的示例应用程序的repo,以便我们可以开始编辑和推送更改?
我尝试了gcloud init my-project
但是它似乎只是初始化一个空的回购。事实上当我去"源代码"该项目的部分,那里什么都没有。
如何获取此特定实例的源代码,在本地为其设置repo,然后将更改部署到同一实例?任何帮助将不胜感激。
答案 0 :(得分:1)
好的,我已经取得了一些进展。点击部署后,GCE将向您显示通过SSH隧道访问MEAN堆栈应用程序的命令。
看起来像这样:
gcloud compute ssh --ssh-flag=-L3000:localhost:3000 --project=project-id --zone us-central1-f instance-name
只要防火墙规则允许该特定端口,您就可以更改端口号。
https://console.developers.google.com/project/your-project-id/firewalls/list
一旦你进入SSH,就会看到目标目录,名称与你在运行mean init
我首先制作了这个文件夹的副本,其中我的名字是" flow" cp -r flow flow-bck
然后我删除了一些不必要的目录:
cd flow-bck && rm -rf node_modules bower_components .bower* .git
所有这些都是为了在安装gcloud compute copy-files后使用Google Cloud SDK将该文件夹复制到本地计算机。
在我的本地计算机上,我执行了以下操作:
gcloud compute copy-files my-instance-name:/remote/path/to/flow-bck /local/path/to/destination --zone the-instance-region
以上' my-instance-name',' / remote / path / to',' / local / path / to','的实例区域'显然需要改变你的部署信息等。
这会将远程实例中的所有文件复制到定义的本地路径上找到的本地名为flow-bck的文件夹中。我将此文件夹重命名为远程flow
上的内容,然后执行:
cd flow && npm install
这为MEAN io安装了所有需要的模块和内容。现在关于这一点的重要部分是你必须终止你的远程ssh连接,以便你可以开始运行应用程序的本地版本,因为ssh隧道将使用相同的端口(3000),除非你在隧道时更改它in。
然后在我的本地应用程序目录flow
中运行gulp
以在端口3000上启动应用程序的本地版本。因此它加载并运行正常。我需要创建一个新用户,因为它显然不是同一个数据库。
我也知道这是基本的东西,但不久之前我会忘记通过预先运行mongod
启动mongodb进程。在任何情况下,必须先运行mongo才能在本地启动应用程序。
现在我还没有做的两件事就是编辑和部署基于此的新版本......以及这是否是必要的唠叨问题。很高兴发现这一切都是通过一些简单的命令完成的。