Files
docker-registry/.qoder/repowiki/zh/content/alpine-base 模块.md
danial 1ecefc80af chore(docker): 优化 Playwright 浏览器安装和配置
- 设置 PLAYWRIGHT_BROWSERS_PATH 环境变量指向 /app/.browsers
- 创建 /app/.browsers 目录用于存放浏览器文件
- 分别以 root 用户和 appuser 用户执行 Playwright 依赖和浏览器安装
- 提升 /app/.browsers 目录权限,保证 appuser 访问权限
- 调整安装步骤顺序,优化权限和用户切换流程

docs(kami-gateway): 新增 kami-gateway 模块文档及构建脚本说明

- 添加了 kami-gateway 模块的整体介绍及项目结构概述
- 详细描述了基础镜像构建流程和核心组件(Dockerfile.base 与 build-base-image.sh)
- 分析了 Go 依赖管理方式及 Docker 构建优化机制
- 介绍了 CI/CD 集成流程及自动化构建逻辑
- 阐述了性能优化措施,包括中国镜像源配置和极速构建策略
- 提供了常见故障排查指南以提高镜像构建和推送的稳定性
- 补充了安全性设计,如非 root 用户运行和证书管理

chore(docker): 更新 Go 模块代理地址

- 将 GOPROXY 从 https://goproxy.cn 更改为 https://goproxy.io
- 保持其他环境变量配置不变
- 解决国内代理访问速度或稳定性问题
2025-12-17 15:33:59 +08:00

7.7 KiB
Raw Permalink Blame History

alpine-base 模块

**Referenced Files in This Document** - [README.md](file://alpine-base/README.md) - [build-base-image.sh](file://alpine-base/build-base-image.sh) - [Dockerfile.base](file://alpine-base/Dockerfile.base)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概述
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

alpine-base 模块是一个优化的 Alpine Linux 基础镜像,专为各种容器化应用设计。该镜像基于 alpine:latest,配置了中国镜像源以加速包下载,设置了 Asia/Shanghai 时区,并预装了常用的网络和系统工具。此外,镜像还包含了 CA 证书和自定义证书,确保了安全性和兼容性。通过创建非 root 用户 appuserUID: 1001提高了安全性。镜像大小约为 50MB适合轻量级应用。

项目结构

alpine-base 模块包含以下文件:

  • README.md:项目说明文档
  • build-base-image.sh:基础镜像构建脚本
  • Dockerfile.base:基础镜像定义文件
graph TD
A[alpine-base] --> B[README.md]
A --> C[build-base-image.sh]
A --> D[Dockerfile.base]

Diagram sources

Section sources

核心组件

alpine-base 模块的核心组件包括 Dockerfile.basebuild-base-image.shDockerfile.base 定义了基础镜像的构建过程,而 build-base-image.sh 脚本则负责执行构建、打标和推送操作。

Section sources

架构概述

alpine-base 模块的架构主要包括以下几个部分:

  1. 基础镜像:基于 alpine:latest
  2. 镜像源配置:使用阿里云镜像源加速包下载。
  3. 时区设置:设置为 Asia/Shanghai
  4. 预装工具:包括 curlwgetgitbashtargzip 等。
  5. 证书管理:包含 CA 证书和自定义证书。
  6. 用户配置:创建非 root 用户 appuserUID: 1001
  7. 应用目录:创建 /app 目录并设置权限。
graph TD
A[alpine:latest] --> B[配置阿里云镜像源]
B --> C[设置时区为Asia/Shanghai]
C --> D[安装预装工具]
D --> E[下载并更新证书]
E --> F[创建非root用户appuser]
F --> G[创建应用目录/app]
G --> H[切换到appuser用户]
H --> I[设置工作目录为/app]
I --> J[标记镜像]

Diagram sources

详细组件分析

Dockerfile.base 分析

Dockerfile.base 文件定义了基础镜像的构建过程。以下是其主要步骤:

  1. 基础镜像:从 alpine:latest 开始。
  2. 环境变量:设置 TZAsia/Shanghai
  3. 镜像源配置:将阿里云镜像源写入 /etc/apk/repositories
  4. 安装包:更新包列表,升级现有包,并安装一系列常用工具和证书。
  5. 时区设置:复制 Asia/Shanghai 时区信息到 /etc/localtime,并写入 /etc/timezone
  6. 清理缓存:删除 /var/cache/apk/* 以减少镜像大小。
  7. 下载自定义证书:从指定 URL 下载自定义证书并更新 CA 证书。
  8. 创建非 root 用户:创建 appuser 用户和组UID 为 1001。
  9. 创建应用目录:创建 /app 目录并设置所有者为 appuser
  10. 切换用户:切换到 appuser 用户。
  11. 设置工作目录:设置工作目录为 /app
  12. 标记镜像:添加维护者、版本和描述标签。
flowchart TD
Start([开始]) --> BaseImage["FROM alpine:latest"]
BaseImage --> SetEnv["ENV TZ=Asia/Shanghai"]
SetEnv --> ConfigureRepo["配置阿里云镜像源"]
ConfigureRepo --> InstallPackages["安装包"]
InstallPackages --> SetupTimezone["设置时区"]
SetupTimezone --> Cleanup["清理缓存"]
Cleanup --> DownloadCerts["下载自定义证书"]
DownloadCerts --> CreateUser["创建非root用户appuser"]
CreateUser --> CreateAppDir["创建应用目录/app"]
CreateAppDir --> SwitchUser["切换到appuser用户"]
SwitchUser --> SetWorkDir["设置工作目录为/app"]
SetWorkDir --> LabelImage["标记镜像"]
LabelImage --> End([结束])

Diagram sources

Section sources

build-base-image.sh 分析

build-base-image.sh 脚本负责构建、打标和推送基础镜像。以下是其主要步骤:

  1. 配置:设置基础镜像名称、注册表和版本。
  2. 构建镜像:使用 docker build 命令构建镜像,并打上版本和 latest 标签。
  3. 标记注册表:如果指定了注册表,则为镜像打上注册表标签。
  4. 推送镜像:如果指定了注册表,则将镜像推送到注册表。
  5. 显示镜像大小:显示构建完成后的镜像大小。
flowchart TD
Start([开始]) --> Config["配置变量"]
Config --> BuildImage["构建基础镜像"]
BuildImage --> TagRegistry["标记注册表"]
TagRegistry --> PushImage["推送镜像"]
PushImage --> ShowSize["显示镜像大小"]
ShowSize --> End([结束])

Diagram sources

Section sources

依赖分析

alpine-base 模块依赖于 alpine:latest 镜像,并通过 apk 包管理器安装了一系列工具和证书。这些依赖项确保了镜像的功能性和安全性。

graph TD
A[alpine:latest] --> B[apk-tools]
B --> C[curl]
B --> D[wget]
B --> E[git]
B --> F[bash]
B --> G[tar]
B --> H[gzip]
B --> I[ca-certificates]
I --> J[自定义证书]

Diagram sources

Section sources

性能考虑

alpine-base 模块通过以下方式优化性能:

  • 轻量化:基于 Alpine Linux镜像大小约为 50MB。
  • 快速构建:预装常用工具和配置,减少构建时间。
  • 网络优化:使用阿里云镜像源加速包下载。
  • 安全:创建非 root 用户 appuser,提高安全性。

故障排除指南

如果在构建或使用 alpine-base 镜像时遇到问题,可以参考以下建议:

  • 构建失败:检查 Dockerfile.base 中的命令是否正确,确保网络连接正常。
  • 推送失败:确认 DOCKER_REGISTRY 环境变量是否正确设置,检查 Docker 登录状态。
  • 权限问题:确保 appuser 用户和 /app 目录的权限设置正确。

Section sources

结论

alpine-base 模块提供了一个优化的 Alpine Linux 基础镜像,适用于各种容器化应用。通过预装常用工具、配置中国镜像源、设置时区和创建非 root 用户,该镜像在功能性和安全性方面表现出色。镜像大小约为 50MB适合轻量级应用。通过 build-base-image.sh 脚本,可以轻松构建、打标和推送镜像,确保了开发和部署的高效性。