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 (将#修改为@)