我有这个Dockerfile:
FROM node:argon
ENV http_proxy http://user:pass@proxy.company.priv:3128
ENV https_proxy https://user:pass@proxy.company.priv:3128
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
但是我在npm安装步骤中得到了这个错误:
npm info如果它以ok npm信息结束使用npm@2.14.12 npm info使用node@v4.2.6 npm warn package.json deployer-ui@1.0.0没有说明npm WARN package.json deployer-ui@1.0. 0没有存储库字段.npm WARN package.json deployer-ui@1.0.0没有自述文件数据npm信息预安装deployer-ui@1.0.0 npm信息尝试注册表请求尝试#1在7:09:23 AM npm http请求GET https://注册表. npmjs.org/body-parser npm信息尝试注册表请求尝试#1在7:09:23 AM npm http请求GET https://registry.npmjs.org/express npm info retry将重试,最后一次尝试时出错:错误:无法建立隧道套接字,因为=写EPROTO npm信息重试将重试,最后一次尝试时出错:错误:隧道套接字无法建立,原因=写入EPROTO
我想这是由于代理.我也尝试过
RUN npm config set proxy http://user:pass@proxy.company.priv:3128
RUN npm config set https-proxy http://user:pass@proxy.company.priv:3128
Run Code Online (Sandbox Code Playgroud)
但仍然得到同样的错误.
而且,在我的文件/etc/systemd/system/docker.service.d/http-proxy.conf中我有这个:
Environment="HTTP_PROXY=http://user:pass@proxy.company.priv:3128"
Environment="HTTPS_PROXY=https://user:pass@proxy.company.priv:3128"
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Von*_*onC 17
首先https_proxy应该使用http网址,而不是https网址.
其次,您不需要在Dockfile中嵌入代理设置:您可以使用构建时变量
docker build --build-arg HTTP_PROXY=http://user:pass@proxy.company.priv:3128 --build-arg HTTPS_PROXY=http://user:pass@proxy.company.priv:3128 .
最后,docker服务级别的代理设置允许docker守护程序从Internet中提取图像.这并不意味着执行的unix命令(RUN指令)docker build将从中受益.因此需要将它们作为构建时环境变量传递.
我也遇到了同样的问题,并且不想在我的映像中设置任何代理信息,因为我不想依赖于我的公司环境。
我的解决方案是使用以网关模式运行的cntlm。为此,我将标记Gateway设置为yes以下允许规则放入我的cntlm配置文件中:
Gateway yes
# Allow local
Allow 127.0.0.1
# Allow docker subnetwork
Allow 172.17.0.0/16
Run Code Online (Sandbox Code Playgroud)
然后我可以通过获取dokcer0接口地址(通过ifconfig命令获取)来运行我的docker文件:
docker build -t my-image --build-arg HTTP_PROXY=http://172.17.0.1:3128 --build-arg HTTPS_PROXY=http://172.17.0.1:3128 .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11851 次 |
| 最近记录: |