【问题标题】:Docker YAML enviroment for spring.datasource.password have symbols. How do i work this around?spring.datasource.password 的 Docker YAML 环境有符号。我该如何解决这个问题?
【发布时间】:2020-05-09 13:28:16
【问题描述】:

好的,我有一个用于部署 Spring Boot 映像的 yaml 文件。所以我想在我的环境yaml中设置我的spring数据源密码。但是当我使用 docker-compose up 时,它会显示错误

ERROR: Invalid interpolation format for "environment" option in service "apps": "spring.datasource.password= "my_password!@#$" 

我认为发生此错误是因为我的数据源密码中包含符号。如何解决?

这是我的 .yml 文件:

version: '3.0'

    services:    
        apps:
                image: student
                ports:
                - 8085:8080
                environment:
                - spring.datasource.url=jdbc:postgresql://192.168.100.3/my_database
                - spring.datasource.username= my_user
                - spring.datasource.password= my_password!@#$

【问题讨论】:

标签: postgresql spring-boot docker docker-compose yaml


【解决方案1】:

末尾的$ 向 Compose 发出信号,表明它需要执行variable substitution;如果后面没有实际的环境变量名称,则会出现“无效插值”错误。要解决这个问题:

当您的配置需要文字美元符号时,您可以使用 $$(双美元符号)。

这样设置:

- spring.datasource.password=my_password!@#$$

(仔细检查:用户名和密码是否应该以空格开头?您可能需要删除等号后的空格,environment: 文档在这里没有显示空格,并且不建议从值中删除空格。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 2020-02-14
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多