..

docker打包镜像的注意事项

在docker打包镜像的时候,我一般是使用 alpine 作为底包,而不是 ubuntu 更加不是 centos ,因为这个两个基础镜像的文件大小已经非常大了,不利于分发和快速部署。我们在为 alpine 安装工具的时候经常会遇到安装过程中卡主的情况,这是因为从 http://dl-cdn.alpinelinux.org/alpine/ 这个仓库下载包会非常缓慢。使用阿里云提供的镜像加速服务可以绕过这个坑。如下:

FROM fluent/fluentd:v0.12-onbuild
# backup the orign repo and use aliyun mirror instead
RUN { \
  echo "http://mirrors.aliyun.com/alpine/v3.7/main"; \
  echo "http://mirrors.aliyun.com/alpine/v3.7/community"; \
 } > /etc/apk/repositories

RUN apk add --update --virtual .build-deps \
        sudo build-base ruby-dev \
 && sudo gem install \
        fluent-plugin-elasticsearch \
 && sudo gem sources --clear-all \
 && apk del .build-deps \
 && rm -rf /var/cache/apk/* \
           /home/fluent/.gem/ruby/2.3.0/cache/*.gem

以上是我编译 fluentd 的镜像时候用的 Dockerfile 文件。这行代码就是添加镜像加入的作用

RUN { \
  echo "http://mirrors.aliyun.com/alpine/v3.7/main"; \
  echo "http://mirrors.aliyun.com/alpine/v3.7/community"; \
 } > /etc/apk/repositories

注意: v3.7这个版本是可以修改的。