代码之家  ›  专栏  ›  技术社区  ›  Peter Kaufman

如何在.env文件中使用环境变量来填充同一.env文件中的其他环境变量

  •  1
  • Peter Kaufman  · 技术社区  · 8 年前

    我使用base.env作为几个Docker服务的env_文件。在这个base.env中,我有几个部分的环境变量在整个文件中重复出现。例如,端口和IP对于三个不同的环境变量是相同的。 我想在一个环境变量中指定这些变量,并重用这些变量来填充其他环境变量。

    这里是base.env:

    ### Kafka
    # kafka's port is 9092 by default in the docker-compose file
    KAFKA_PORT_NUMBER=9092
    KAFKA_TOPIC=some-topic
    KAFKA_IP=kafka
    KAFKA_CONN: //$KAFKA_IP:$KAFKA_PORT_NUMBER/$KAFKA_TOPIC
    # kafka topic that is to be created. Note that ':1:3' should remain the same.
    KAFKA_CREATE_TOPICS=$KAFKA_TOPIC:1:3
    # the url for connecting to kafka
    KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://$KAFKA_IP:$KAFKA_PORT_NUMBER
    

    我试过写作

    KAFKA_CONN: //$${KAFKA_IP}:$${KAFKA_PORT_NUMBER}/$${KAFKA_TOPIC}
    

    在docker-compose.yml中相应服务的environment部分,但这会被解释为容器中的文本字符串。

    在base.env文件中有没有一种方法可以满足我的需要? 谢谢你的帮助!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Peter Kaufman    8 年前