为什么 wsl2 里用 Go 语言调 Command 模块执行 docker 命令没走代理?

2023-02-05 10:27:33 +08:00
 Albertcord

之前在 github 上提了个issue,但发现没人回答,来 v 站求助下大佬 我的问题其实就是发现,我自己在 wsl2 里执行以下命令是可以访问到的:

curl -s -S -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer

但是我在用cog,这个库的时候发现其内部构建 Docker 镜像时获取不到上面这个 raw.githubxx ,这个链接,一直报 443 ,不过我刚刚又看了 issue ,发现怎么是报 Could not resolve host: raw.githubusercontent.com 了,我有段时间没去看了,可能我已经解决代理问题了?
继续说回问题,然后我自己写了个测试 DockerFile ,发现我 wsl2 里的 Docker 构建是会走代理的,所以很疑惑问题在哪里?有 Go 大佬帮帮忙吗,也在学 Go ,但进度有些慢,本身是前端,感觉缺少了什么上下文

FROM ubuntu
RUN apt update
RUN apt install -y git
RUN apt install -y curl
RUN cd ~
# RUN git clone https://github.com/momo-lab/pyenv-install
RUN echo $(curl -s -S -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer) > ~/test.text
2226 次点击
所在节点    程序员
24 条回复
Albertcord
2023-02-06 21:30:21 +08:00
@swcat 还是刚知道这个库,我得后面花时间研究下,网络上没找到什么资源,如果确实能一劳永逸,那么我也抽时间写个文章发在知乎上
Albertcord
2023-02-06 21:33:46 +08:00
@hopingtop
果然是 go 内置模块的执行过程就是绕过 shell 的,真让人折腾啊!
我现在是通过找 wsl 自动生成的 resolv.conf 里的 nameserver 机器,区分 host ip 跟 wsl ip ,然后在 wsl 里设置 env ,设置代理到 host_ip:clash_port ,来走代理,感觉跟你所说的处理方法相似
Albertcord
2023-02-06 21:34:36 +08:00
@julyclyde 是的,但是我是有配置 daemon 的,但是 go 执行 cmd 不走 wsl 的 shell 配置
Albertcord
2023-02-06 21:35:16 +08:00
@lysS env 是环境变量吧,这里是要让 cmd 执行在某个 shell 里,我看看有没有类似的参数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/913280

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX