docker镜像构建若干经验-记打造网易风霁视频团队外包云平台经历1

docker镜像构建若干经验-记打造网易风霁视频团队外包云平台经历1

背景

公司作为网易风霁视频团队的云服务供应商,为他们定制开发了一套项目外包管理平台。为了方便运维管理、资源调度,我们每次升级都是打包成docker镜像,然后push到视频团队的代码仓库中的。原来一直比较正常。但是最近攀攀(我们公司的一位后台开发小伙),跑过来告诉阳哥,打包了很多次,每次都会有如下类似错误,而且每次还不一样。他告诉阳哥,他已经使出洪荒之力了,但是效果不理想。

 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/f/flite/libflite1_2.1-release-3_amd64.deb  Connection failed [IP: 91.189.88.142 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/s/serd/libserd-0-0_0.30.2-1_amd64.deb  Connection failed [IP: 91.189.88.152 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/s/sord/libsord-0-0_0.16.4-1_amd64.deb  Connection failed [IP: 91.189.88.152 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/libv/libvidstab/libvidstab1.1_1.1.0-2_amd64.deb  Connection failed [IP: 91.189.88.152 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/g/gcc-9/gcc-9_9.3.0-17ubuntu1~20.04_amd64.deb  Connection failed [IP: 91.189.88.152 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc-dev-bin_2.31-0ubuntu9.2_amd64.deb  Connection failed [IP: 91.189.88.152 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

对话

阳哥:你对它做了什么?

攀攀:我百度了上面的错误信息,发现了一条。让在/etc/resolv.conf里面添加上8.8.8.8的递归服务器。还有就是直接apt-get --fix-missing update

阳哥: 然后呢?

攀攀:涛声依旧

阳哥:上面的错误显示Connection failed [IP: 91.189.88.142 80],很明显A记录都出来了,不是递归服务器的问题。一看就是安装过程中源的问题。之前你运气好,一直没出问题,是一个小概率事件,出问题是大概率的事件。

攀攀: 好的,阳哥,我马上百度一下打包的时候如何指定源。

过了半天,攀攀又心急火燎地跑过来,问阳哥。

攀攀:阳哥,阳哥,我设置了下面的内容,现在问题更大了。直接报错了。

此时阳哥心中一阵凉风,飕飕的,阳哥也一时不知道如何应对,但是作为攀攀,清华等人的精神领袖,阳哥得淡定,阳哥得冷静,不能在小弟面前丢面子。

The following packages have unmet dependencies:
software-properties-common : Depends: python3:any (>= 3.3.2-2~)
Depends: python3 but it is not going to be installed
Depends: python3-gi but it is not going to be installed
Depends: python-apt-common (>= 0.9) but it is not going to be installed
Depends: python3-dbus but it is not going to be installed
Depends: python3-software-properties (= 0.96.20.10) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
The command '/bin/sh -c apt-get update && apt-get install --no-install-recommends -y software-properties-common' returned a non-zero code: 100

阳哥看了看,攀攀写的Dockerfile,心中疑惑悠然而生,时间一点点的流失,阳哥的面子一点点的耗费。他索性看了看当前目录中的sources.list, 顿时心中大喜。看来阳哥又要恢复大师风范,和攀攀这位职场新人,面授机宜了。

FROM ubuntu:focal

USER root

COPY ./sources.list /etc/apt/sources.list

RUN apt-get update
RUN apt-get install --no-install-recommends -y software-properties-common
RUN apt-get install --no-install-recommends -q -y \
bzip2 \
ffmpeg \
git \
gcc \
nginx \
postgresql-client \
python3 \
python3-dev \
python3-pip \
python3-venv \
libjpeg-dev \
redis-server \
supervisor && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

错误的sources.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

解决

我们常用的ubuntu版本,有三个。上面的Dockerfile 是FROM ubuntu:focal,但是很多时候,职场新人像攀攀,都是直接百度信息后,没有甄别就使用了。而且网上充斥着大量之前ubuntu 16.04中的源信息,所以上面的原因是源和镜像ubuntu:focal不匹配。所以我们在构建镜像的时候,一定要先清楚你的FROM是什么。

ubuntu常用的3大版本

xenial 16.04
bionic 18.04
focal 20.04

下面给出相应的源,方便大家使用:

ubuntu 16.04 配置如下

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

ubuntu 18.04(bionic) 配置如下

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

ubuntu 20.04(focal) 配置如下

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值