我需要将文件从 git repo 复制到 google cloud 上的持久磁盘,作为使用“google cloud build”的自动部署过程的一部分。
如何在云构建 yaml 中使用持久卷声明或挂载 nfs 共享?
我已经使用“kubectl cp”实现了将文件从 /workspace 复制到运行 nfs 服务器的 pod,但是 kubectl 的 cp 是有限的,它不支持目录排除,也不具备像 rsync 那样的同步功能。
总之,如何使用 google cloud build 安装 nfs 共享?
答案1
如果你只想维护 git repo 中的文件,你可以将你的工件存储在云储存。这是如何在 Cloud Storage 中存储多个工件的示例:
steps:
- name: 'gcr.io/cloud-builders/javac'
args: ['HelloWorld.java']
artifacts:
objects:
location: 'gs://[STORAGE_LOCATION]/'
paths: ['HelloWorld.java', 'HelloWorld.class', 'cloudbuild.yaml']
此外您还可以使用通配符在将文件发送到 Cloud Storage 时。这将帮助您满足目录排除要求。稍后您可以使用以下任一方式提取文件客户端库来自 Kubernetes 服务。