我有一个使用 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/