9

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

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

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

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

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

我努力了:

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

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

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

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

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

npm pack; npm install

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

真的有可能吗?

4

2 回答 2

0

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

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

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

于 2019-04-03T22:38:02.127 回答
0

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

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


使用云源代码库

我相信,由于您已经依赖于私有存储库,因此在其上托管整个应用程序会更简单。鉴于此,您将不得不克隆整个 repo,运行 npm install 和 deploy。

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

脚步:

cloudbuild.yaml1)使用以下代码在您的应用程序根文件夹 a 上创建:

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) 创建一个Cloud Build 触发器(因此推送到 repo 的新代码将被自动部署)

app.yaml4) 将包含和的根文件夹推cloudbuild.yaml送到 repo

它现在应该同步到 Cloud Source Repositories 并且应该触发 Cloud Build 进行部署。

于 2019-03-29T15:31:19.640 回答