在docker撰写文件集环境列表
我有一个使用aerospike的应用程序
在application.conf我有一个参数,我可以从环境重写
aerospike.hosts = ["192.168.33.10"] aerospike.hosts = ${?DS_AEROSPIKE_HOSTS}
我可以如何设置我的泊坞窗撰写文件中的主机列表?
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”]'
我相信你不能将一个数组传递给ENVvariables。 但是您可以将其作为string传递,然后在应用程序中parsingstring。
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(',')
你有几个select:
-
你可以在你的Docker版本中包含一个
docker.conf
文件,并将你想要的设置注入到这个文件中。 然后你可以包含你的application.conf
的docker.conf
文件。 例如添加到你的application.conf
:include "docker.conf"
-
您可以使用环境variables传递一个string值(如Stanislav所build议的),然后将其转换为序列。 这样做的惯用方法是创build一个
ConfigLoader
,然后使用它将一个String
转换为一个Seq[String]
。 例如:implicit val stringSeqLoader: ConfigLoader[Seq[String]] = ConfigLoader(_.getString).map(_.split(','))
- 泊坞窗akka和斯卡拉,应用程序启动和停止后,没有理由
- SBT增量编译与Docker中的WebJars
- sbt-docker无效的头字段值“oci …运行时错误:没有这样的文件错误
- Elastic BeanStalk Docker应用程序,编写本地文件
- 使用新的标签添加docker发布步骤到sbt-release过程
- 在Scala Play中用sbt-dockerreplacesbt-native-packager
- 在Docker Alpine Linux容器上运行Scala SBT时的证书exception
- 播放更改RUNNING_PID文件path
- 如何激活scala中的sbt DockerPlugin?