docker构建配置代理wget:无法连接到远程主机

问题描述 投票:0回答:1

我不太擅长网络, 当我从虚拟机运行

wget
和 wget 到外部时,我看不到内部命令
docker build --build-arg https_proxy="http://proxy-fg:8080/"
发生了什么变化?有什么想法吗?

[root@LQL-BDDBAS01 pg13]# export https_proxy=http://proxy-fg:8080/
[root@LQL-BDDBAS01 pg13]# wget -O postgresql.tar.bz2 "https://ftp.postgresql.org/pub/source/v13.13/postgresql-13.13.tar.bz2"
--2024-03-25 17:42:23--  https://ftp.postgresql.org/pub/source/v13.13/postgresql-13.13.tar.bz2
Résolution de proxy-fg (proxy-fg)… 10.1.100.254
Connexion à proxy-fg (proxy-fg)|10.1.100.254|:8080… connecté.
requête Proxy transmise, en attente de la réponse… 200 OK
Taille : 21563452 (21M) [application/octet-stream]
Sauvegarde en : « postgresql.tar.bz2 »

postgresql.tar.bz2                                  100%[=================================================================================================================>]  20,56M  5,79MB/s    ds 3,6s

2024-03-25 17:42:28 (5,79 MB/s) — « postgresql.tar.bz2 » sauvegardé [21563452/21563452]
[root@LQL-BDDBAS01 pg13]# docker build --build-arg https_proxy="http://proxy-fg:8080/" --tag postgres13:alpine3.18 .
[+] Building 132.4s (8/12)                                                                                                                                                                     docker:default
 => [internal] load .dockerignore                                                                                                                                                                        0.0s
 => => transferring context: 2B                                                                                                                                                                          0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                                     0.0s
 => => transferring dockerfile: 8.07kB                                                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/alpine:3.18                                                                                                                                           1.1s
 => [1/8] FROM docker.io/library/alpine:3.18@sha256:11e21d7b981a59554b3f822c49f6e9f57b6068bb74f49c4cd5cc4c663c7e5160                                                                                     0.0s
 => [internal] load build context                                                                                                                                                                        0.0s
 => => transferring context: 102B                                                                                                                                                                        0.0s
 => CACHED [2/8] RUN set -eux;  addgroup -g 70 -S postgres;  adduser -u 70 -S -D -G postgres -H -h /var/lib/postgresql -s /bin/sh postgres;  mkdir -p /var/lib/postgresql;  chown -R postgres:postgres   0.0s
 => CACHED [3/8] RUN mkdir /docker-entrypoint-initdb.d                                                                                                                                                   0.0s
 => ERROR [4/8] RUN set -eux;   wget -O postgresql.tar.bz2 "https://ftp.postgresql.org/pub/source/v13.13/postgresql-13.13.tar.bz2";  echo "8af69c2599047a2ad246567d68ec4131aef116954d8c3e469e9789080b  131.2s
------
 > [4/8] RUN set -eux;          wget -O postgresql.tar.bz2 "https://ftp.postgresql.org/pub/source/v13.13/postgresql-13.13.tar.bz2";     echo "8af69c2599047a2ad246567d68ec4131aef116954d8c3e469e9789080b37a474 *postgresql.tar.bz2" | sha256sum -c -;         mkdir -p /usr/src/postgresql;   tar             --extract               --file postgresql.tar.bz2               --directory /usr/src/postgresql              --strip-components 1     ;       rm postgresql.tar.bz2;          apk add --no-cache --virtual .build-deps                llvm15-dev              clang15                 bison           coreutils            dpkg-dev dpkg            flex            g++             gcc             krb5-dev                libc-dev                libedit-dev             libxml2-dev             libxslt-dev             linux-headers make            openldap-dev            openssl-dev             perl-dev                perl-ipc-run            perl-utils              python3-dev             tcl-dev                 util-linux-dev       zlib-dev                 icu-dev         ;               cd /usr/src/postgresql;         awk '$1 == "#define" && $2 == "DEFAULT_PGSOCKET_DIR" && $3 == "\"/tmp\"" { $3 = "\"/var/run/postgresql\""; print; next } { print }' src/include/pg_config_manual.h > src/include/pg_config_manual.h.new;      grep '/var/run/postgresql' src/include/pg_config_manual.h.new;  mv src/include/pg_config_manual.h.new src/include/pg_config_manual.h;         gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)";      wget -O config/config.guess 'https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=7d3d27baf8107b630586c962c057e22149653deb';    wget -O config/config.sub 'https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=7d3d27baf8107b630586c962c057e22149653deb';          export LLVM_CONFIG="/usr/lib/llvm15/bin/llvm-config";         export CLANG=clang-15;          ./configure             --enable-option-checking=fatal          --build="$gnuArch"              --enable-integer-datetimes              --enable-thread-safety                --enable-tap-tests              --disable-rpath                 --with-uuid=e2fs                --with-gnu-ld           --with-pgport=5432              --with-system-tzdata=/usr/share/zoneinfo              --prefix=/usr/local             --with-includes=/usr/local/include              --with-libraries=/usr/local/lib                 --with-gssapi           --with-ldap             --with-tcl            --with-perl             --with-python           --with-openssl          --with-libxml           --with-libxslt          --with-icu              --with-llvm     ;       make -j "$(nproc)" world;     make install-world;     make -C contrib install;                runDeps="$(             scanelf --needed --nobanner --format '%n#p' --recursive /usr/local                      | tr ',' '\n'        | sort -u                        | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }'                         | grep -v -e perl -e python -e tcl      )";     apk add --no-cache --virtual .postgresql-rundeps              $runDeps                bash            su-exec                 tzdata          zstd            icu-data-full           $([ "$(apk --print-arch)" != 'ppc64le' ] && echo 'nss_wrapper')       ;       apk del --no-network .build-deps;       cd /;   rm -rf          /usr/src/postgresql             /usr/local/share/doc            /usr/local/share/man    ;       echo '{"spdxVersion":"SPDX-2.3","SPDXID":"SPDXRef-DOCUMENT","name":"postgres-sbom","packages":[{"name":"postgres","versionInfo":"13.13","SPDXID":"SPDXRef-Package--postgres","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:generic/[email protected]?os_name=alpine&os_version=3.18"}],"licenseDeclared":"PostgreSQL"}]}' > /usr/local/postgres.spdx.json      ;       postgres --version:
0.312 + wget -O postgresql.tar.bz2 https://ftp.postgresql.org/pub/source/v13.13/postgresql-13.13.tar.bz2
0.371 Connecting to ftp.postgresql.org (147.75.85.69:443)
131.1 wget: can't connect to remote host (147.75.85.69): Operation timed out
------
Dockerfile:34
linux postgresql docker build wget
1个回答
0
投票

经过多次测试,我非常确定在 docker build 内部,命令 RUN 不会考虑 https_proxy 的 env 配置。它解释了为什么 wget 遇到超时 我发现这篇文章:Docker 完全忽略 HTTP 代理设置,但问题在 2022 年报告! :https://github.com/docker/for-linux/issues/1444

[root@LQL-BDDBAS01 pg13]# docker build --no-cache --progress=plain  --tag postgres13:alpine3.18 .
#0 building with "default" instance using docker driver

#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.0s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 8.12kB done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/alpine:3.18
#3 DONE 0.4s

#4 [ 1/10] FROM docker.io/library/alpine:3.18@sha256:11e21d7b981a59554b3f822c49f6e9f57b6068bb74f49c4cd5cc4c663c7e5160
#4 CACHED

#5 [internal] load build context
#5 transferring context: 102B done
#5 DONE 0.0s

#6 [ 2/10] RUN env
#6 0.345 HTTPS_PROXY=http://proxy-fg:8080
#6 0.345 SHLVL=1
#6 0.345 HOME=/root
#6 0.345 https_proxy=http://proxy-fg:8080
#6 0.345 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#6 0.345 PWD=/
#6 DONE 0.4s

#7 [ 3/10] RUN wget -O test "https://google.com"
#7 0.384 Connecting to google.com (216.58.212.110:443)
© www.soinside.com 2019 - 2024. All rights reserved.