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:
@@ -16,6 +16,7 @@ COPY [选项] ["<源路径1>", "<源路径2>", ... "<目标路径>"]
|
||||
#### 复制单个文件
|
||||
|
||||
```docker
|
||||
|
||||
## 复制文件到指定目录
|
||||
|
||||
COPY package.json /app/
|
||||
@@ -28,6 +29,7 @@ COPY config.json /app/settings.json
|
||||
#### 复制多个文件
|
||||
|
||||
```docker
|
||||
|
||||
## 复制多个指定文件
|
||||
|
||||
COPY package.json package-lock.json /app/
|
||||
@@ -41,6 +43,7 @@ COPY src/*.js /app/src/
|
||||
#### 复制目录
|
||||
|
||||
```docker
|
||||
|
||||
## 复制整个目录的内容(不是目录本身)
|
||||
|
||||
COPY src/ /app/src/
|
||||
@@ -97,6 +100,7 @@ COPY src/ ./src/ # 复制到 /app/src/
|
||||
如果目标目录不存在,Docker 会自动创建:
|
||||
|
||||
```docker
|
||||
|
||||
## /app/config/ 不存在也会自动创建
|
||||
|
||||
COPY settings.json /app/config/
|
||||
@@ -109,6 +113,7 @@ COPY settings.json /app/config/
|
||||
使用 `--chown` 选项设置文件的用户和组:
|
||||
|
||||
```docker
|
||||
|
||||
## 使用用户名和组名
|
||||
|
||||
COPY --chown=node:node package.json /app/
|
||||
@@ -136,6 +141,7 @@ COPY 会保留源文件的元数据:
|
||||
这对于脚本文件特别重要:
|
||||
|
||||
```docker
|
||||
|
||||
## start.sh 的可执行权限会被保留
|
||||
|
||||
COPY start.sh /app/
|
||||
@@ -153,6 +159,7 @@ COPY start.sh /app/
|
||||
| 推荐程度 | ✅ **推荐** | ⚠️ 特殊场景使用 |
|
||||
|
||||
```docker
|
||||
|
||||
## 推荐:使用 COPY
|
||||
|
||||
COPY app.tar.gz /app/
|
||||
@@ -172,6 +179,7 @@ ADD app.tar.gz /app/
|
||||
#### 从其他构建阶段复制
|
||||
|
||||
```docker
|
||||
|
||||
## 构建阶段
|
||||
|
||||
FROM node:20 AS builder
|
||||
@@ -190,6 +198,7 @@ COPY --from=builder /app/dist /usr/share/nginx/html
|
||||
#### 使用 --link 优化缓存
|
||||
|
||||
```docker
|
||||
|
||||
## 使用 --link 后,文件以独立层添加,不依赖前序指令
|
||||
|
||||
COPY --link --from=builder /app/dist /usr/share/nginx/html
|
||||
@@ -208,6 +217,7 @@ COPY --link --from=builder /app/dist /usr/share/nginx/html
|
||||
使用 `.dockerignore` 排除不需要复制的文件:
|
||||
|
||||
```text
|
||||
|
||||
## .dockerignore
|
||||
|
||||
node_modules
|
||||
@@ -231,6 +241,7 @@ Dockerfile
|
||||
#### 1. 利用缓存,先复制依赖文件
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 好:先复制依赖定义,再安装,最后复制代码
|
||||
|
||||
COPY package.json package-lock.json ./
|
||||
@@ -246,9 +257,11 @@ RUN npm install
|
||||
#### 2. 使用 .dockerignore
|
||||
|
||||
```docker
|
||||
|
||||
## 确保 node_modules 不被复制
|
||||
|
||||
COPY . .
|
||||
|
||||
## .dockerignore 中应包含 node_modules
|
||||
|
||||
...
|
||||
@@ -257,6 +270,7 @@ COPY . .
|
||||
#### 3. 明确复制路径
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 好:明确的路径
|
||||
|
||||
COPY src/ /app/src/
|
||||
|
||||
Reference in New Issue
Block a user