我使用mvn clean package docker:build来调用机器B中的dockerfile(docker version 18.03.1-ce):
FROM openjdk:8-jdk-alpine
RUN apk update && apk upgrade && apk add netcat-openbsd && apk add curl
事实证明:
Step 2/8 : RUN apk update && apk upgrade && apk add netcat-openbsd && apk add curl
---> Running in 89c9b97b9d75
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directory
我弄清楚它的网络问题,机器B通过机器A访问互联网,我尝试在/etc/docker/daemon.json中添加“dns”,在〜/ .docker / config.json中添加“httpProxy”,现在我跑步成功:
`docker run -it cc2179b8f042`
apk update
但是当我回来使用maven调用dockfile时,它不起作用。那么我怎样才能使dockfile工作并告诉我这两种情况之间的区别。
答案 0 :(得分:1)
您似乎需要在Dockerfile中设置http_proxy
。如果您这样做(例如,出于特定的,临时的原因 - 比如说您在公司代理服务器后面建立容器)并且随后不再需要它,我建议如下:
RUN export \
http_proxy="http://some.custom.proxy:8080/” \
https_proxy="https://some.custom.proxy:8080/" \
\
&& < E.G. pip install requirements.txt> \
\
&& unset http_proxy https_proxy
您也可以通过调用ENV
在Dockerfile中使用更永久的解决方案,但请注意,如果您将图像推送/部署到其他位置,这些解决方案会持久存在并导致问题进一步发展 - {{ 3}}