将GCP凭据添加到.net核心应用程序中的Docker

时间:2020-11-01 23:00:33

标签: docker .net-core google-cloud-platform docker-compose

我是docker的新手。 我开发了.Net Core Api,该文件应使用GCP存储进行文件存储。 我使用了本教程来配置https://medium.com/net-core/using-google-cloud-storage-in-asp-net-core-74f9c5ee55f5,但是当我必须通过凭据.json路径时遇到了问题。 docker-compose up时如何将凭据.json添加到docker容器中? 以及该文件在容器上的路径是什么

1 个答案:

答案 0 :(得分:3)

注意:由于您未指定要使用的Google Cloud服务,因此此答案假定Google Compute Engine与Docker结合使用。

如果将服务帐户存储在容器主机上的JSON文件中,请使用Docker bind mount功能。本示例将主机的/secrets目录映射到容器的/config目录。然后,您将使用以/config/

开头的完整路径访问服务帐户
-v /secrets:/config

Docker Bind Mount

但是,Google Cloud Compute服务的设计建议将服务帐户分配给VM实例,然后从元数据访问凭据。 Google SDK客户端使用ADC来查找凭据,如果未指定服务帐户,则会检查OAuth访问令牌的元数据。这包括.NET的Google客户端。

要检索和OAuth访问令牌的元数据终结点:

http://metadata.google.internal/computeMetadata/v1instance/service-accounts/default/token

另一种选择是对服务帐户JSON文件的内容进行base64编码,并将其作为环境变量传递到容器,然后将其保存到容器内的文件中(在代码,shell脚本等中)。