林正英演过的电视剧源设置导致Docker镜像构建失败
编写了⼀个Dockerfile,主要⽬的是构建⼀个镜像,镜像默认安装了openjdk-1.8-jre,还有另外⼀些包(这些包⾥⾯有dev版本的,也有release版本的),Dockerfile的内容⼤致如下:
FROM ubuntu:16.04
RUN echo"deb mirrors.aliyun/ubuntu/ xenial main restricted universe multiverse" > /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list \董贞 刀剑如梦
&& apt-get update
本兮死亡原因#安装openjdk-8-jre
RUN apt-get install -y openjdk-8-jre --fix-missing
#安装其他使⽤的包
RUN apt-get install -y tar ubuntu-make autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev libx264-dev libfdk-aac-dev yasm --fix-missing
这段Dockerfile build没有通过,在3台机器(分别对应不同的⽹络环境)上测试过,只有其中⼀个环境是能build成功,报错的两个环境都是以下错误(有差异的原因现在也没搞清楚,搞了两三个星期了,很晕)
铁风筝Get:100 mirrors.aliyun/ubuntu xenial-updates/main amd64 libllvm3.8 amd64 1:3.8-2ubuntu4 [10.3 MB]
Err:100 mirrors.aliyun/ubuntu xenial-updates/main amd64 libllvm3.8 amd64 1:3.8-2ubuntu4
刘蓓 吴秀波Hash Sum mismatch
...省略了中间⼀部分的⽇志...
Unable to correct missing packages.
E: Failed to fetch mirrors.aliyun/ubuntu/pool/main/l/llvm-toolchain-3.8/libllvm3.8_3.8-2ubuntu4_amd64.deb  Hash Sum mismatch
E: Aborting install.
The command '/bin/sh -c apt-get install -y openjdk-8-jre --fix-missing' returned a non-zero code: 100
这个问题困扰了好长⼀段时间,之后尝试了⼀下只使⽤main的源,其他的删除掉,jre能安装成功,但是后⾯的那些包⼜不到。所以最后只能使⽤以下的work around⽅案把镜像做成了:
FROM ubuntu:16.04
#openjdk-8-jre使⽤了updates源之后报hash sum mismatch的错误,
#只能使⽤main才能安装成功,这个问题没有到根本原因,暂时使⽤此解决⽅式
RUN echo"deb mirrors.aliyun/ubuntu/ xenial main restricted universe multiverse" > /etc/apt/sources.list \
&& apt-get update
RUN apt-get install -y openjdk-8-jre --fix-missing
RUN echo"deb mirrors.aliyun/ubuntu/ xenial main restricted universe multiverse" > /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo"deb mirrors.aliyun/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
&& apt-get update
RUN apt-get install -y tar ubuntu-make autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \张惠妹结婚了吗
libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev libx264-dev libfdk-aac-dev yasm --fix-missing