我正在尝试构建符合 中指定要求的 docker 映像requirements.txt
。但是,在尝试构建该文件时,我收到以下错误:
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-atm/libatm1_2.5.1-1.5_amd64.deb 400 Bad Request [IP: 91.189.91.39 80]
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/p/popt/libpopt0_1.16-10_amd64.deb 400 Bad Request [IP: 91.189.91.39 80]
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libc/libcap-ng/libcap-ng0_0.7.7-1_amd64.deb 400 Bad Request [IP: 91.189.91.39 80]
我尝试更改镜像,我检查了 cat /etc/apt/sources.list 的输出,我尝试添加标志 --fix-missing 并尝试使用 --no-cache all 构建映像徒劳无功。
这是 Dockerfile:
# Base image
FROM ubuntu:16.04
MAINTAINER Siddhanth Ajri "[email protected]"
RUN cat /etc/apt/sources.list
# Changing to US archives of UBUNTU
RUN sed -i'' 's/archive\.ubuntu\.com/us\.archive\.ubuntu\.com/' /etc/apt/sources.list
# Install dependencies
RUN apt-get update && apt-get install -y \
software-properties-common \
curl \
git
#RUN add-apt-repository universe
RUN apt-get update && apt-get install -y \
curl \
git
RUN apt-get install python3.7
RUN apt-get install python3-pip
# Upgrade pip to 20.x
RUN pip3 install -U pip
COPY ./requirements.txt /requirements.txt
WORKDIR /
RUN pip3 install -r requirements.txt
COPY . /
到目前为止,我发现的上述解决方案都无法为我解决这个问题。
答案1
通过将 apt HTTP 代理设置为直接使用我的互联网代理,我能够解决这个非常令人沮丧的问题。目前尚不清楚为什么隐形代理适用于某些软件包,但不适用于其他软件包,但显式设置代理解决了该问题。
看无法在 debian(代理)中使用 apt-get update 安装软件包有关设置代理的示例。
我/etc/apt/apt.conf.d/30proxy.conf
通过创建一个包含以下内容的文件来使用该方法:
Acquire::http { Proxy "http://192.168.0.1:3128" }
http://192.168.0.1:3128
鱿鱼代理在哪里。