postgresql - spring.datasource.password 的 Docker YAML 环境有符号。我该如何解决这个问题?
问题描述
好的,所以我有一个用于部署 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!@#$
解决方案
最后$
的 向 Compose 发出信号,表明它需要进行变量替换;如果后面没有实际的环境变量名称,则会出现“无效插值”错误。要解决这个问题:
当您的配置需要文字美元符号时,您可以使用
$$
(双美元符号)。
所以设置:
- spring.datasource.password=my_password!@#$$
(仔细检查:用户名和密码应该以空格开头吗?您可能需要删除等号后的空格,environment:
文档在这里没有显示空格,并且不建议它从值中删除空格。)
推荐阅读
- php - PHP 查询不显示回显值或错误
- html - 满足媒体查询时,如何让背景图像填充 div?
- python - Python从日期查找每小时文件列表
- angular - 根据 env nginx 和 Angular 5 支持多个 index.html
- httprequest - Webhook 调用失败。错误:无法解析 webhook JSON 响应:期望消息对象但得到:[中文字母]
- java - 为什么通过刷新令牌获取 Azure AD 令牌没有签名算法?
- ios - 如何动态更改自定义 UIButton 的图像
- c++ - 将任何类型与 true 进行比较的 C++ 类方法
- reactjs - 试图通过道具将点击处理程序传递给阿波罗查询
- java - 回文检查 Java 中 Int 的效率