Fix and improve

This commit is contained in:
Baohua Yang
2026-02-12 16:51:50 -08:00
parent bae82e993a
commit 0835f8467a
100 changed files with 280 additions and 622 deletions

View File

@@ -2,8 +2,6 @@
### 基本语法
具体内容如下
```docker
ARG <参数名>[=<默认值>]
```
@@ -37,8 +35,6 @@ ARG <参数名>[=<默认值>]
#### 定义和使用
具体内容如下
```docker
## 定义有默认值的 ARG
@@ -70,8 +66,6 @@ $ docker build --build-arg NODE_VERSION=18 -t myapp .
#### FROM 之前的 ARG
具体内容如下
```docker
## FROM 之前的 ARG 只能用于 FROM 指令
@@ -87,8 +81,6 @@ RUN echo $REGISTRY # 输出空
#### FROM 之后重新声明
具体内容如下
```docker
ARG NODE_VERSION=20
@@ -102,8 +94,6 @@ RUN echo "Node version: $NODE_VERSION"
#### 多阶段构建中的 ARG
具体内容如下
```docker
ARG BASE_VERSION=alpine
@@ -126,8 +116,6 @@ RUN echo "Running with Node $NODE_VERSION"
#### 1. 控制基础镜像版本
具体内容如下
```docker
ARG ALPINE_VERSION=3.19
FROM alpine:${ALPINE_VERSION}
@@ -139,8 +127,6 @@ $ docker build --build-arg ALPINE_VERSION=3.18 .
#### 2. 设置软件版本
具体内容如下
```docker
ARG NGINX_VERSION=1.25.0
@@ -149,8 +135,6 @@ RUN curl -fsSL https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz | tar -x
#### 3. 配置构建环境
具体内容如下
```docker
ARG BUILD_ENV=production
ARG ENABLE_DEBUG=false
@@ -164,8 +148,6 @@ RUN if [ "$ENABLE_DEBUG" = "true" ]; then \
#### 4. 配置私有仓库
具体内容如下
```docker
ARG NPM_TOKEN
@@ -223,8 +205,6 @@ $ docker build --build-arg HTTP_PROXY=http://proxy:8080 .
#### 1. ARG 提供合理默认值
具体内容如下
```docker
## ✅ 好:有默认值
@@ -237,8 +217,6 @@ ARG NODE_VERSION
#### 2. 不要用 ARG 存储敏感信息
具体内容如下
```docker
## ❌ 错误:密码会被记录在镜像历史中
@@ -247,14 +225,11 @@ RUN echo "password=$DB_PASSWORD" > /app/.env
## ✅ 正确:使用 secrets 或运行时环境变量
具体内容如下:
...
```
#### 3. 使用 ARG 提高构建灵活性
具体内容如下
```docker
ARG BASE_IMAGE=python:3.12-slim
FROM ${BASE_IMAGE}
@@ -263,8 +238,7 @@ FROM ${BASE_IMAGE}
## docker build --build-arg BASE_IMAGE=python:3.11-alpine .
具体内容如下:
...
```
---
@@ -282,6 +256,6 @@ FROM ${BASE_IMAGE}
### 延伸阅读
- [ENV 设置环境变量](env.md)运行时环境变量
- [FROM 指令](../../04_image/4.5_build.md)基础镜像指定
- [多阶段构建](../multistage-builds.md)复杂构建场景
- [ENV 设置环境变量](7.6_env.md)运行时环境变量
- [FROM 指令](../04_image/4.5_build.md)基础镜像指定
- [多阶段构建](7.17_multistage_builds.md)复杂构建场景