Docker,在 Docker 文件 'apk add' 中添加新包时,企业代理(使用 PX 反向代理)无法进行 DNS 查找
Docker, Corporate Proxy (using PX Reverse Proxy) fails to do DNS lookup when adding new packages within Dockerfile with 'apk add'
我开始在公司内部使用 Docker 工作,但我的 Docker 桌面出现网络问题。
我的系统设置是:
- Windows 10 家企业
- Docker 桌面版 (4.3.2)
- 用于连接到 Internet 的公司代理
- PX Proxy (0.5.0) 作为反向代理,默认 运行 在端口 3128 上。
我只是尝试按照 Docker 的说明对 getting-started 中的示例 node.js 应用程序进行 docker 化,但由于
RUN apk add...
(见下文)
步骤。
首先尝试: docker build -t getting-started .
通常应该做简单的事情。
结果是:RUN apk add --no-cache python2 g++ make
指令中的 DNS 查找错误。
从 Docker 文件内部调用互联网似乎不是一件小事 :-(.
输出:
第二次尝试:docker build -t getting-started . --build-arg HTTP_PROXY=http://localhost:3128 --build-arg HTTPS_PROXY=http://localhost:3128
这次我在同一步骤中遇到 网络错误(检查 Internet 连接和防火墙)。
输出:
我的Docker文件看起来和教程中的一样。
FROM node:12-alpine
# Adding build tools to make yarn install work on Apple silicon / arm64 machines
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
在同一目录中,我有示例应用程序,正如提到的入门教程中所述。
px.ini 文件:
[proxy]
server = my.company.com:8080
port = 3128
listen = 127.0.0.1
gateway = 1
hostonly = 0
noproxy = 127.0.0.*,10.*.*.*,192.168.*.*
allow = *.*.*.*
username= de\username
[settings]
workers = 3
threads = 8
idle = 30
socktimeout = 20.0
foreground = 0
log = 0
Docker 桌面代理配置:
网络上的许多研究,例如在 Whosebug、论坛等地方。我发现这很可能是网络配置问题的提示。
有人知道我在这里做错了什么吗?
Docker 如何正确设置公司代理和反向代理作为 CNTLM 或 PX 代理?
我已经通过在 Dockerfile 中使用环境变量解决了我的问题。
FROM node:12-alpine
ARG http_proxy=http://host.docker.internal:3128
ARG https_proxy=http://host.docker.internal:3128
# Adding build tools to make yarn install work on Apple silicon / arm64
machines
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
我开始在公司内部使用 Docker 工作,但我的 Docker 桌面出现网络问题。
我的系统设置是:
- Windows 10 家企业
- Docker 桌面版 (4.3.2)
- 用于连接到 Internet 的公司代理
- PX Proxy (0.5.0) 作为反向代理,默认 运行 在端口 3128 上。
我只是尝试按照 Docker 的说明对 getting-started 中的示例 node.js 应用程序进行 docker 化,但由于
RUN apk add...
(见下文)
步骤。
首先尝试: docker build -t getting-started .
通常应该做简单的事情。
结果是:RUN apk add --no-cache python2 g++ make
指令中的 DNS 查找错误。
从 Docker 文件内部调用互联网似乎不是一件小事 :-(.
输出:
第二次尝试:docker build -t getting-started . --build-arg HTTP_PROXY=http://localhost:3128 --build-arg HTTPS_PROXY=http://localhost:3128
这次我在同一步骤中遇到 网络错误(检查 Internet 连接和防火墙)。
输出:
我的Docker文件看起来和教程中的一样。
FROM node:12-alpine
# Adding build tools to make yarn install work on Apple silicon / arm64 machines
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
在同一目录中,我有示例应用程序,正如提到的入门教程中所述。
px.ini 文件:
[proxy]
server = my.company.com:8080
port = 3128
listen = 127.0.0.1
gateway = 1
hostonly = 0
noproxy = 127.0.0.*,10.*.*.*,192.168.*.*
allow = *.*.*.*
username= de\username
[settings]
workers = 3
threads = 8
idle = 30
socktimeout = 20.0
foreground = 0
log = 0
Docker 桌面代理配置:
网络上的许多研究,例如在 Whosebug、论坛等地方。我发现这很可能是网络配置问题的提示。
有人知道我在这里做错了什么吗? Docker 如何正确设置公司代理和反向代理作为 CNTLM 或 PX 代理?
我已经通过在 Dockerfile 中使用环境变量解决了我的问题。
FROM node:12-alpine
ARG http_proxy=http://host.docker.internal:3128
ARG https_proxy=http://host.docker.internal:3128
# Adding build tools to make yarn install work on Apple silicon / arm64
machines
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]