微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker 环境变量中的特殊字符封装作曲家使用

如何解决Docker 环境变量中的特殊字符封装作曲家使用

我们在 Dockercontainer 中工作,我需要通过代理安装/更新 Composer。

  1. 在我的 Dockerfile 中,我使用以下命令创建环境变量:

ENV http_proxy http://user:password#@proxy_url

ENV https_proxy http://user:password#@proxy_url

===> 结果正常(容器已创建)

  1. 构建我的容器后,我会在我的容器中看到我的 env 变量是否具有受影响的值:

echo $http_proxy

echo https_proxy

===> 结果:OK(环境变量有很好的价值)

  1. 我在我的容器中用我的 Composer 命令吃午饭,我有这个错误信息:

    检查 git 设置:执行命令(CWD):git config color.ui 行 检查与 packagist 的 http 连接:失败 [Composer\Downloader\TransportException] 无法使用代理:http_proxy url 格式错误 检查与 packagist 的 https 连接:失败 [Composer\Downloader\TransportException] 无法使用代理:http_proxy url 格式错误

发现问题:在我的密码中放入 env var,我有字符 # 并且这个字符似乎造成了这个格式错误的问题(我没有测试,我没有更新因为登录失败但格式错误是走了)。

我尝试用 \ 转义我的 # 特殊字符:

ENV http_proxy http://user:password\#@proxy_url

ENV https_proxy http://user:password\#@proxy_url

===> 尝试在 Dockerfile 和容器中直接重写我的 env var ===> 结果:好的(环境变量有很好的价值,没有 \ 但有 #)

当我重试我的作曲家更新/安装/诊断时,我有同样的格式错误:'(

我该如何解决这个问题,我认为 \ 在 env var 上效率不高...

有人遇到过同样的问题吗?你是如何解决这个问题的?

非常感谢

本杰明

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。