scala - 在 docker compose 文件中将环境设置为列表

标签 scala docker playframework docker-compose

我有一个使用 aerospike 的应用程序

在 application.conf 中,我有一个可以从环境中重写的参数

aerospike.hosts = ["192.168.33.10"]
aerospike.hosts = ${?DS_AEROSPIKE_HOSTS}

如何在我的 docker compose 文件中设置主机列表?
version: '3.1'

services:
     ds-aerospike-db:
        image: aerospike/aerospike-server
        restart: always
        volumes: 
          - volume:/opt/aerospike/etc
        command: ["--config-file","/opt/aerospike/etc/aerospike.conf"]
        ports:
          - 3000:3000
     dashboard:
        image: dashboard:0.1
        restart: always
        ports:
            - 9000:9000
        environment:
         DS_AEROSPIKE_HOSTS: '["192.168.33.10"]'

这种格式是一个错误 DS_AEROSPIKE_HOSTS: '["192.168.33.10"]'

最佳答案

我相信您不能将数组传递给 ENV 变量。
但是您可以将其作为字符串传递,然后在您的应用程序中解析字符串。

environment:
  - DS_AEROSPIKE_HOSTS='192.168.33.10,192.168.33.11'

有效的 docker-compose.yml 语法在文档中说明
https://docs.docker.com/compose/environment-variables/

我不熟悉 Scala,但我相信你可以做类似的事情
aerospike.hosts = ${?DS_AEROSPIKE_HOSTS}.split(',')

关于scala - 在 docker compose 文件中将环境设置为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039934/

相关文章:

java - Spark 流: avoid checkpointLocation check

scala - 值类引入了不需要的公共(public)方法

java - 在Scala中使用正则表达式(字符串+数字)

Jenkinsfile 中的 mysqldump 无法连接到服务器

java - 将框架作为 API 来玩。我可以使用基于 Web 的应用程序和 native Android 作为客户端来使用 Rest Api 直接与 Play 交互吗

java - 如何使用将加载 JPA 实体的动态 id 属性在 Play Framework v1.2.7 中配置 POST 路由

scala - "str"% "str"在 SBT 中是什么意思?

docker - 在Docker内部使用elasticsearch:无法建立新连接

docker - 尝试推送到我的私有(private)存储库时,我不断收到 404 错误。为什么?

java - JPA模型关系