当前位置: 首页 > 知识库问答 >
问题:

从google云计算引擎上的启动脚本中提取git回购

何烨华
2023-03-14

为了向我的团队展示我正在构建的应用程序的进展情况,我在谷歌云计算引擎上创建了一个小型开发服务器。这台服务器通常关闭以节省成本,只有在我们一起工作时才打开。我正在开发并在服务器未打开时推动git repo。启动服务器时,应提取最新的更改,安装节点包并启动节点服务器。为此,我创建了以下启动脚本:

#! /bin/bash
cd /to/my/server/folder
git pull
sudo npm install --no-progress
nohup node src/ &

我已经创建了一个ssh密钥,并在这个特定的回购中添加了一个只读部署密钥。该脚本在服务器上进行了测试,工作完全正常。现在有趣的部分。当脚本作为启动脚本运行时(https://cloud.google.com/compute/docs/startupscript)它不起作用。错误:

permission denied (public key)
fatal: could not read from repo make sure it exists.

我尝试了以下修复:在gitlab上获得被拒绝的权限(公钥)。问题是,他们一般无法收回吉特回购。在我的例子中,它在命令行中运行良好,在shell脚本中运行良好,但在启动脚本中无法运行。

我还尝试了从“可能是”到“胡乱猜测”的一系列其他东西。很明显,我在这里遗漏了一些东西。有人能帮我吗?

共有1个答案

朱令
2023-03-14

终于在这里找到了答案:https://superuser.com/a/868699/852795.显然,google启动脚本中使用的SSH密钥出了问题。解决方案是显式地告诉git使用什么密钥。像这样:GIT\u SSH\u COMMAND=“SSH-i~/.SSH/id\u rsa”GIT pull

 类似资料:
  • 问题内容: 这是一个集成问题: 我想在Google Compute Engine上运行Jenkins。我可以这样做,但是如果我始终保持运行8核虚拟机,那我会很快超出预算。作为解决方案,我认为我可以让一个微实例具有少量的内存打开,并始终充当詹金斯主数据库运行。似乎我应该能够将github配置为每执行一次推送就启动一个jenkins从属服务器(具有8个内核)。如何将github提交后钩子连接到Goog

  • 我在GCE上使用麋鹿堆叠。一切正常。但后来我安装了NGINX,后来卸载了它。之后,Kibana在卸载NGINX后无法启动。 Elasticsearch版本:2.4.5 Kibana版本:4.6 KibanaSTDOUT日志是: {“类型”:“日志”,“时间戳”:“2017-06-06T08:13:06Z”,“标签”:[“状态”,“插件:kibana@1.0.0“,“信息”],“pid”:364,“

  • 有没有一种方法可以暂停Dataproc群集,这样当我不积极运行火花外壳或火花提交作业时就不会收到账单?此链接处的群集管理说明:https://cloud.google.com/sdk/gcloud/reference/beta/dataproc/clusters/ 仅演示如何销毁群集,但我安装了spark cassandra连接器API。这是我创建每次都需要安装的映像的唯一选择吗?

  • 这是代码: 日志中的错误是 连接错误错误:Redis连接到10.1.2.3:6379失败-连接ETIMEDOUT 10.1.2.3:6379 我看过谷歌云功能不能连接到Redis,但它对设置规则时的选项不够具体。 我尝试使用以下设置来设置防火墙规则: 入口 网络:默认 源筛选器:我的firebase服务帐户 协议/端口:全部 目标:所有 只需注意一下服务帐户: 由Firebase创建 在IAM中具

  • 我有个问题要问你们。我正在寻找帮助我在谷歌云计算机引擎上部署spring boot应用程序的指南,我在测试spring boot应用程序时键入实例IP地址,但我无法在REST API中访问它。 请问您有什么指南或步骤可以让我在谷歌云计算引擎中成功部署吗。我为什么需要在计算机引擎中部署,是因为我在它上部署了angular,而且我也部署了angular。我的angular项目似乎被我的spring b

  • 很好的一天, 我非常基本的Nodejs应用程序部署在谷歌云应用程序引擎实例上没有启动。该应用程序在本地工作,使用运行时没有错误——在应用程序实例上,当通过Cloud shell手动启动时,该应用程序成功运行(使用