如何在标准环境下将私有,自托管的NPM软件包与Google App Engine节点一起使用

时间:2019-03-25 20:14:17

标签: google-app-engine npm google-cloud-build google-appengine-node

我有一个NPM软件包托管在私有Bitbucket git存储库中(不在官方NPM注册表中)。

我在package.json中的“依赖项”键下有此名称:

"a-private-package" git+ssh://git@bitbucket.org:myusername/a-private-package.git

当我在使用SSH密钥的情况下在本地运行npm install时,它可以工作。

但是当我使用gcloud app deploy部署到节点的App Engine标准环境时,我从Google Cloud Build获得了Host key verification failed

我尝试过:

向Cloud Build中添加自定义SSH密钥。

https://cloud.google.com/cloud-build/docs/access-private-github-repos

问题:GAE标准无法访问cloudbuild.yaml;无法告诉git使用SSH密钥。

将我的私人git仓库添加到Google Sources。

问题:GAE标准无法访问cloudbuild.yaml;无法告诉git使用SSH密钥。

npm pack; npm install

问题:不保留回购历史记录/ URL。

真的有可能吗?

2 个答案:

答案 0 :(得分:0)

运行cloudbuild.yaml时无法修改gcloud builds submit --config=cloudbuild.yaml .。相反,您必须创建一个新的gcloud app deploy并用cloudbuild.yaml执行。在这种情况下,cloudbuild.yaml将在steps: # NPM install - name: 'gcr.io/cloud-builders/npm' args: ['install'] #Test - name: 'gcr.io/cloud-builders/npm' args: ['test'] #Deploy - name: "gcr.io/cloud-builders/gcloud" args: ["app", "deploy"] 内部执行。

我已经尝试了描述的步骤,以连接到私有Github存储库并更改值以使其适合bitbucket,但无法。因此,我创建了这个Feature Request for better documentation


使用云源存储库

我相信,由于您已经对私有存储库有了依赖性,因此将整个应用程序托管在该存储库上会更加简单。鉴于此,您将必须克隆整个存储库,运行npm install and deploy。

在这种情况下,Cloud Source Repository具有mirror directly到Bitbucket(公共和私有存储库)的内置功能。<​​/ p>

Steps:

1)使用以下代码在您的应用根文件夹上创建一个app.yaml

cloudbuild.yaml

2)Connect Cloud Source Repositories to Bitbucket

3)创建一个Cloud Build Trigger(这样,推送到存储库的新代码将被自动部署)

4)将包含{{1}}和{{1}}的根文件夹推入仓库

现在应将其同步到Cloud Source Repository,并应触发部署的Cloud Build。

答案 1 :(得分:0)

不幸的是,您需要在package.json中嵌入用户名/密码,但是您可能可以使用https端点:

"a-private-package": "git+https://myusername:password@bitbucket.org/myusername/a-private-package.git"

如果这对您有用,我建议您在bitbucket上创建一个单独的帐户,并将其限制为只能在该存储库上查看。