该Dockerfile定义了一个基础镜像('base'),使用了一个Golang镜像作为基础,并从另一个镜像('xx')中复制文件。然后,它设置了一个APT缓存保留选项,并使用了一个APT镜像源。接下来,它安装了file软件包,并将GO111MODULE环境变量设置为off。

具体步骤:

  1. 构建基础镜像:

    FROM --platform=$BUILDPLATFORM ${GOLANG_IMAGE} AS base
    COPY --from=xx / /
    
    • 从指定的Golang镜像构建基础镜像'base'。
    • 将另一个镜像'xx'中的所有文件复制到基础镜像中。
  2. 配置APT缓存保留选项:

    RUN echo 'Binary::apt::APT::Keep-Downloaded-Packages 'true';' > /etc/apt/apt.conf.d/keep-cache
    
    • 将APT缓存保留选项设置为'true',以便在后续构建中重用已下载的软件包。
  3. 使用APT镜像源:

    ARG APT_MIRROR
    RUN sed -ri 's/(httpredir|deb).debian.org/${APT_MIRROR:-deb.debian.org}/g' /etc/apt/sources.list \
     && sed -ri 's/(security).debian.org/${APT_MIRROR:-security.debian.org}/g' /etc/apt/sources.list
    
    • 使用环境变量'APT_MIRROR'来指定APT镜像源,提高下载速度和稳定性。
  4. 安装file软件包:

    ARG DEBIAN_FRONTEND
    RUN apt-get update && apt-get install --no-install-recommends -y file
    
    • 更新APT软件包列表并安装file软件包,用于文件类型识别。
  5. 设置GO111MODULE环境变量:

    ENV GO111MODULE=off
    
    • 将GO111MODULE环境变量设置为'off',表示使用Go Modules之前版本的依赖管理机制。

该Dockerfile展示了构建基础镜像、配置APT缓存和镜像源、安装软件包以及设置环境变量的最佳实践,对于构建高效可靠的Docker镜像至关重要。

Dockerfile最佳实践:构建基础镜像并配置APT缓存

原文地址: http://www.cveoy.top/t/topic/gRqS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录