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



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

我在我的package.json中,在"依赖项"键下有这个:

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

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

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

我试过:

将自定义 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。

真的可能吗?

运行gcloud app deploy时无法修改cloudbuild.yaml。相反,您必须创建一个新cloudbuild.yaml并使用gcloud builds submit --config=cloudbuild.yaml .在这种情况下,gcloud app deploy将在cloudbuild.yaml内执行。

我已经尝试了连接到私有 Github 存储库并更改值以使其适合 bitbucket 的步骤,但无法做到。因此,我创建了此功能请求以获得更好的文档


使用云源存储库

我相信,由于您已经依赖于私有存储库,因此在其上托管整个应用程序会更简单。鉴于此,您必须克隆整个存储库,运行 npm 安装和部署。

在这种情况下,云源存储库具有直接镜像到 Bitbucket(公共和私有存储库)的内置功能。

步骤:

1) 使用以下代码在应用根文件夹上创建一个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"]

2) 将云源存储库连接到 Bitbucket

3) 创建云构建触发器(因此推送到存储库的新代码将自动部署)

4) 将包含app.yamlcloudbuild.yaml的根文件夹推送到存储库

它现在应该同步到云源存储库,并且应该触发部署的云构建。

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

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

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

相关内容

  • 没有找到相关文章

最新更新