mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Add blank lines before headers
This commit is contained in:
@@ -33,6 +33,7 @@ ADD [选项] ["<源路径>", ... "<目标路径>"]
|
||||
#### 基本用法:自动解压本地 tar
|
||||
|
||||
```docker
|
||||
|
||||
## 自动解压 tar.gz 到目标目录
|
||||
|
||||
ADD app.tar.gz /app/
|
||||
@@ -76,6 +77,7 @@ app.tar.gz 包含: /app/ 目录结果:
|
||||
#### 基本用法
|
||||
|
||||
```docker
|
||||
|
||||
## 从 URL 下载文件
|
||||
|
||||
ADD https://example.com/app.zip /app/app.zip
|
||||
@@ -93,6 +95,7 @@ ADD https://example.com/app.zip /app/app.zip
|
||||
#### 推荐替代方案
|
||||
|
||||
```docker
|
||||
|
||||
## ❌ 不推荐:使用 ADD 下载
|
||||
|
||||
ADD https://example.com/app.tar.gz /tmp/
|
||||
@@ -125,6 +128,7 @@ ADD --chown=1000:1000 files/ /app/
|
||||
#### ✅ 适合使用 ADD
|
||||
|
||||
```docker
|
||||
|
||||
## 解压本地 tar 文件
|
||||
|
||||
FROM scratch
|
||||
@@ -138,6 +142,7 @@ ADD dist.tar.gz /app/
|
||||
#### ❌ 不适合使用 ADD
|
||||
|
||||
```docker
|
||||
|
||||
## 复制普通文件(用 COPY)
|
||||
|
||||
ADD package.json /app/ # ❌
|
||||
@@ -161,6 +166,7 @@ COPY archive.tar.gz /archives/ # ✅ 保持原样
|
||||
ADD 可能导致构建缓存失效:
|
||||
|
||||
```docker
|
||||
|
||||
## 如果 app.tar.gz 内容变化,此层及后续层都需重建
|
||||
|
||||
ADD app.tar.gz /app/
|
||||
@@ -170,6 +176,7 @@ RUN npm install
|
||||
**优化建议**:
|
||||
|
||||
```docker
|
||||
|
||||
## 先复制依赖文件
|
||||
|
||||
COPY package*.json /app/
|
||||
@@ -187,6 +194,7 @@ ADD app.tar.gz /app/
|
||||
#### 1. 默认使用 COPY
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 大多数场景使用 COPY
|
||||
|
||||
COPY . /app/
|
||||
@@ -195,6 +203,7 @@ COPY . /app/
|
||||
#### 2. 仅在需要解压时使用 ADD
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 自动解压场景
|
||||
|
||||
ADD app.tar.gz /app/
|
||||
@@ -203,6 +212,7 @@ ADD app.tar.gz /app/
|
||||
#### 3. 不要用 ADD 下载文件
|
||||
|
||||
```docker
|
||||
|
||||
## ❌ 避免
|
||||
|
||||
ADD https://example.com/file.tar.gz /tmp/
|
||||
@@ -215,6 +225,7 @@ RUN curl -fsSL https://example.com/file.tar.gz | tar -xz -C /app
|
||||
#### 4. 解压后清理
|
||||
|
||||
```docker
|
||||
|
||||
## 如果需要控制解压过程
|
||||
|
||||
COPY app.tar.gz /tmp/
|
||||
|
||||
Reference in New Issue
Block a user