首页 > 解决方案 > Docker:设置多行环境变量

问题描述

我想运行一个容器并将一些环境变量传递给它。

其中之一是 GCP 私有(服务帐户)密钥,它是一个多行字符串,或多或少采用以下格式:

{
  "type": "service_account",
  "project_id": "my-project",
  "private_key_id": "39dj4847dhcba0484hb",
  "private_key": "-----BEGIN PRIVATE KEY-----\nDDik499dkdm4n4849doidkdjm$90f9fkcm\n-----END PRIVATE KEY-----\n",
  "client_email": "something@my-project.iam.gserviceaccount.com",
  "client_id": "383748490382672627384745645363",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/somethingelse.gserviceaccount.com"
}

所以我想通过将上面的内容作为GOOGLE_APPLICATION_CREDENTIALS环境变量传递来创建一个容器。

我认为传统的docker run -e GOOGLE_APPLICATION_CREDENTIALS=(all of the above要么不起作用,要么手动添加所需的所有换行符会很麻烦。

我该怎么办?

PS我知道这个讨论,但它在上下文中解决了这个问题Dockerfile

标签: dockerenvironment-variablesenvironment

解决方案


推荐阅读