问题描述
README 文档中建议:
wrap password in single quotes if $, /, or \ are present
但这个建议在使用 docker run --env-file 时会导致登录失败,因为单引号会被包含在密码值中。
复现步骤
- 创建
.env 文件:
USERNAME=test
PASSWORD='test$123'
- 运行容器:
docker run --env-file .env ghcr.io/extrange/ibkr:stable
- 查看容器日志:
Unrecognized Username or Password
根本原因
docker run --env-file:单引号会成为密码值的一部分
- Docker Compose:单引号不会阻止
$ 被解释为变量引用
建议修复
更新 README 中的建议:
docker run --env-file:直接写值,不加引号
- Docker Compose:使用
\\$ 转义 $ 符号
测试结果
PASSWORD='Claw$wuxi1' → 实际传递:'Claw$wuxi1' (失败)
PASSWORD=Claw$wuxi1 → 实际传递:Claw$wuxi1 (成功)
环境
- Docker version: 29.2.1
- Image: ghcr.io/extrange/ibkr:stable