如何在使用 Google Cloud Build 时将私有存储库凭据传递给 maven docker 映像



我正在尝试使用Google Cloud Build来构建我的Java应用程序。它允许使用所谓的云构建器 - 不同构建器的 docker 映像。我正在使用Maven。所以问题是我必须使用私有存储库(工件工厂(来部署工件。这个代表受密码保护,我不知道如何将这些凭据传递给 GC maven docker 容器。

我看到唯一可能的方法是:

  1. 要运行将更新 maven 容器设置的 shell 脚本.xml如下所示:

    <servers>
    <server>
    <id>myRepoName</id>
    <username>${server.username}</username>
    <password>${server.password}</password>
    </server>
    </servers>
    
  2. 在 cloudbuild.yml 中设置 env 变量

还有其他优雅的方法可以实现我想要的吗?

我通过执行以下操作解决了这个问题:

  1. 创建一个谷歌云存储存储桶并上传您想要的settings.xml。我正在使用 GitHub 包,遵循他们的文档

  2. 使用以下方法设置 cloudbuild.yaml:

steps:
- name: gcr.io/cloud-builders/gsutil
args: ['cp', 'gs://ci-maven/settings.xml', 'settings.xml']
- name: maven:3.6.3-jdk-11-openj9
entrypoint: 'mvn'
args: ['--settings', '/workspace/settings.xml', 'install']
images: ['gcr.io/schemata-np/scheduler']

首先,它将设置.xml复制到当前目录 (/workspace(。然后,直接使用 Docker Maven 映像,我们将--settings /workspace/settings.xml添加到参数中以指定设置.xml位置。从那里,Google Cloud Build能够提取我的私有GitHub包来正确安装我的项目。

可以在第一步中复制到/usr/share/maven/ref/以允许默认的Maven Docker行为,但我无法使其工作。如果有人这样做,请告诉我!

基于对有关缓存工件和 Google Cloud Build 文档的略有不同的问题的回答

相关内容

  • 没有找到相关文章

最新更新