Docker-Compose多行密钥

时间:2019-05-23 19:37:09

标签: docker-compose yaml

如何在docker-compose.yml中定义多行键?

我尝试了diff解决方案:

   environment:
      - PRIVATE_KEY= |-
        -----BEGIN RSA PRIVATE KEY-----
        line2

   environment:
      - PRIVATE_KEY= |
        -----BEGIN RSA PRIVATE KEY-----
        line2

   environment:
      - PRIVATE_KEY= !
        -----BEGIN RSA PRIVATE KEY-----
        line2

   environment:
      - PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nline2"

   environment:
      - PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n\nline2"

资源: https://yaml-multiline.info/ https://gist.github.com/usmansaleem/bb47064f406c105fdfa69716544b7b8e

但是他们都没有以正确的方式格式化私钥。

编辑(添加):

environment:
  - PRIVATE_KEY: |-
    -----BEGIN RSA PRIVATE KEY-----
    line2

2 个答案:

答案 0 :(得分:1)

“测试”文档中的唯一键是标量enemy_list,其他标量都是无引号的多行标量值。

您所参考的文档解释了如何进行文字标量,但是您绝不会尝试这样做,

environment

和做的一样

  - PRIVATE_KEY= |-
    -----BEGIN RSA PRIVATE KEY-----
    line2

- PRIVATE_KEY= |- -----BEGIN RSA PRIVATE KEY----- line2 除了标量的开头没有任何特殊功能。
您是否尝试过:

|-

这将是一个键值对(请注意值指示符( PRIVATE_KEY: |- -----BEGIN RSA PRIVATE KEY----- line2 ),而不是普通字符:),并且该值是块样式文字标量

答案 1 :(得分:0)

如果您需要在 env 变量中包含 json,请尝试使用 > 此解决方案非常有效。有很多方法可以使用 multiline strings in YAML

version: '2'
services:
  catalog-api-autoscaling:
    image: company.it/project/catalog-api-autoscaling:latest
    container_name: api-autoscaling
    ports:
      - "8083:8083"
    environment:
        CONFIG_ABC: >
          {
            "database": {
               "catalog": {
                   "credentials": {
                       "username": "scott",
                       "password": "tiger",
                       "datbase": "catalog",
                       "host": "gn.dmfkd.lan"
                    }
                }
            }
          }
        CONFIG_DEF: >
          {
            "urlRegex": "/.*",
            "script": {
              "scriptPath": "example-python-app.py"
            },
            "runtime": "python27",
            "threadsafe": true,
          }