Remove blank lines after code block markers

This commit is contained in:
yeasy
2026-03-21 22:36:09 -07:00
parent 312f8fea42
commit 9ac19d79ee
132 changed files with 0 additions and 1517 deletions

View File

@@ -6,7 +6,6 @@
ADD [选项] <源路径>... <目标路径>
ADD [选项] ["<源路径>", ... "<目标路径>"]
```
`ADD` `COPY` 基础上增加了两个功能
1. 自动解压 tar 压缩包
@@ -33,12 +32,10 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
#### 基本用法自动解压本地 tar
```docker
## 自动解压 tar.gz 到目标目录
ADD app.tar.gz /app/
```
ADD 会识别并解压以下格式
- `.tar`
@@ -54,7 +51,6 @@ ADD 会识别并解压以下格式:
FROM scratch
ADD ubuntu-noble-core-cloudimg-amd64-root.tar.gz /
```
#### 解压过程
```bash
@@ -69,7 +65,6 @@ app.tar.gz 包含: /app/ 目录结果:
│ └── main.py │ └── main.py
└── config.json └── config.json
```
---
### 7.3.4 URL 下载功能不推荐
@@ -77,12 +72,10 @@ app.tar.gz 包含: /app/ 目录结果:
#### 基本用法
```docker
## 从 URL 下载文件
ADD https://example.com/app.zip /app/app.zip
```
#### 为什么不推荐
| 问题 | 说明 |
@@ -95,7 +88,6 @@ ADD https://example.com/app.zip /app/app.zip
#### 推荐替代方案
```docker
## ❌ 不推荐:使用 ADD 下载
ADD https://example.com/app.tar.gz /tmp/
@@ -105,7 +97,6 @@ RUN tar -xzf /tmp/app.tar.gz -C /app && rm /tmp/app.tar.gz
RUN curl -fsSL https://example.com/app.tar.gz | tar -xz -C /app
```
优势
- 一条 RUN 完成下载解压清理
@@ -120,7 +111,6 @@ RUN curl -fsSL https://example.com/app.tar.gz | tar -xz -C /app
ADD --chown=node:node app.tar.gz /app/
ADD --chown=1000:1000 files/ /app/
```
---
### 7.3.6 何时使用 ADD
@@ -128,7 +118,6 @@ ADD --chown=1000:1000 files/ /app/
#### 适合使用 ADD
```docker
## 解压本地 tar 文件
FROM scratch
@@ -138,11 +127,9 @@ ADD rootfs.tar.gz /
ADD dist.tar.gz /app/
```
#### 不适合使用 ADD
```docker
## 复制普通文件(用 COPY
ADD package.json /app/ # ❌
@@ -158,7 +145,6 @@ RUN curl -fsSL ... -o /file # ✅
ADD archive.tar.gz /archives/ # ❌ 会解压
COPY archive.tar.gz /archives/ # ✅ 保持原样
```
---
### 7.3.7 缓存行为
@@ -166,17 +152,14 @@ COPY archive.tar.gz /archives/ # ✅ 保持原样
ADD 可能导致构建缓存失效
```docker
## 如果 app.tar.gz 内容变化,此层及后续层都需重建
ADD app.tar.gz /app/
RUN npm install
```
**优化建议**
```docker
## 先复制依赖文件
COPY package*.json /app/
@@ -186,7 +169,6 @@ RUN npm install
ADD app.tar.gz /app/
```
---
### 7.3.8 最佳实践
@@ -194,25 +176,20 @@ ADD app.tar.gz /app/
#### 1. 默认使用 COPY
```docker
## ✅ 大多数场景使用 COPY
COPY . /app/
```
#### 2. 仅在需要解压时使用 ADD
```docker
## ✅ 自动解压场景
ADD app.tar.gz /app/
```
#### 3. 不要用 ADD 下载文件
```docker
## ❌ 避免
ADD https://example.com/file.tar.gz /tmp/
@@ -221,16 +198,13 @@ ADD https://example.com/file.tar.gz /tmp/
RUN curl -fsSL https://example.com/file.tar.gz | tar -xz -C /app
```
#### 4. 解压后清理
```docker
## 如果需要控制解压过程
COPY app.tar.gz /tmp/
RUN tar -xzf /tmp/app.tar.gz -C /app && \
rm /tmp/app.tar.gz
```
---