mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
## 7.3 ADD 更高级的复制文件
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 基本语法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ADD [选项] <源路径>... <目标路径>
|
||||
ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
@@ -9,7 +13,7 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
|
||||
`ADD` 在 `COPY` 基础上增加了两个功能:
|
||||
1. 自动解压 tar 压缩包
|
||||
2. 支持从 URL 下载文件(不推荐)
|
||||
2. 支持从 URL 下载文件 (不推荐)
|
||||
|
||||
---
|
||||
|
||||
@@ -29,7 +33,11 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
|
||||
### 自动解压功能
|
||||
|
||||
#### 基本用法(自动解压本地 tar)
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 基本用法 (自动解压本地 tar)
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 自动解压 tar.gz 到目标目录
|
||||
@@ -54,6 +62,8 @@ ADD ubuntu-noble-core-cloudimg-amd64-root.tar.gz /
|
||||
|
||||
#### 解压过程
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```
|
||||
ADD app.tar.gz /app/
|
||||
│
|
||||
@@ -69,10 +79,14 @@ app.tar.gz 包含: /app/ 目录结果:
|
||||
|
||||
---
|
||||
|
||||
### URL 下载功能(不推荐)
|
||||
### URL 下载功能 (不推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 基本用法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 从 URL 下载文件
|
||||
|
||||
@@ -90,6 +104,8 @@ ADD https://example.com/app.zip /app/app.zip
|
||||
|
||||
#### 推荐替代方案
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ 不推荐:使用 ADD 下载
|
||||
|
||||
@@ -110,6 +126,8 @@ RUN curl -fsSL https://example.com/app.tar.gz | tar -xz -C /app
|
||||
|
||||
### 修改文件所有者
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ADD --chown=node:node app.tar.gz /app/
|
||||
ADD --chown=1000:1000 files/ /app/
|
||||
@@ -119,8 +137,12 @@ ADD --chown=1000:1000 files/ /app/
|
||||
|
||||
### 何时使用 ADD
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### ✅ 适合使用 ADD
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 解压本地 tar 文件
|
||||
|
||||
@@ -134,6 +156,8 @@ ADD dist.tar.gz /app/
|
||||
|
||||
#### ❌ 不适合使用 ADD
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 复制普通文件(用 COPY)
|
||||
|
||||
@@ -181,7 +205,11 @@ ADD app.tar.gz /app/
|
||||
|
||||
### 最佳实践
|
||||
|
||||
#### 1. 默认使用 COPY
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。默认使用 COPY
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 大多数场景使用 COPY
|
||||
@@ -189,7 +217,9 @@ ADD app.tar.gz /app/
|
||||
COPY . /app/
|
||||
```
|
||||
|
||||
#### 2. 仅在需要解压时使用 ADD
|
||||
#### 2。仅在需要解压时使用 ADD
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 自动解压场景
|
||||
@@ -197,7 +227,9 @@ COPY . /app/
|
||||
ADD app.tar.gz /app/
|
||||
```
|
||||
|
||||
#### 3. 不要用 ADD 下载文件
|
||||
#### 3。不要用 ADD 下载文件
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ 避免
|
||||
@@ -209,7 +241,9 @@ ADD https://example.com/file.tar.gz /tmp/
|
||||
RUN curl -fsSL https://example.com/file.tar.gz | tar -xz -C /app
|
||||
```
|
||||
|
||||
#### 4. 解压后清理
|
||||
#### 4。解压后清理
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 如果需要控制解压过程
|
||||
|
||||
Reference in New Issue
Block a user