Fix and improve

This commit is contained in:
Baohua Yang
2026-02-12 16:51:50 -08:00
parent 45c61fc1ac
commit 20c4f21247
100 changed files with 280 additions and 622 deletions

View File

@@ -2,8 +2,6 @@
### 基本语法
具体内容如下
```docker
WORKDIR <工作目录路径>
```
@@ -14,8 +12,6 @@ WORKDIR <工作目录路径>
### 基本用法
具体内容如下
```docker
WORKDIR /app
@@ -30,8 +26,6 @@ COPY . . # 复制到 /app/
#### 常见错误
具体内容如下
```docker
## ❌ 错误cd 在下一个 RUN 中无效
@@ -41,8 +35,6 @@ RUN echo "hello" > world.txt # 文件在根目录!
#### 原因分析
具体内容如下
```
RUN cd /app
@@ -58,8 +50,6 @@ RUN echo "hello" > world.txt
#### 正确做法
具体内容如下
```docker
## ✅ 正确:使用 WORKDIR
@@ -85,8 +75,6 @@ RUN pwd # 输出 /a/b/c
### 使用环境变量
具体内容如下
```docker
ENV APP_HOME=/app
WORKDIR $APP_HOME
@@ -98,8 +86,6 @@ RUN pwd # 输出 /app
### 多阶段构建中的 WORKDIR
具体内容如下
```docker
## 构建阶段
@@ -123,8 +109,6 @@ COPY --from=builder /build/dist .
#### 1. 尽早设置 WORKDIR
具体内容如下
```docker
FROM node:20
WORKDIR /app # 尽早设置
@@ -137,8 +121,6 @@ CMD ["node", "server.js"]
#### 2. 使用绝对路径
具体内容如下
```docker
## ✅ 推荐:绝对路径,意图明确
@@ -151,8 +133,6 @@ WORKDIR app
#### 3. 不要用 RUN cd
具体内容如下
```docker
## ❌ 避免
@@ -166,8 +146,6 @@ RUN echo "hello" > world.txt
#### 4. 适时重置 WORKDIR
具体内容如下
```docker
WORKDIR /app
## ... 应用相关操作 ...
@@ -175,8 +153,7 @@ WORKDIR /app
WORKDIR /data
## ... 数据相关操作 ...
具体内容如下:
...
```
---
@@ -224,6 +201,6 @@ $ docker run -w /tmp myimage pwd
### 延伸阅读
- [COPY 复制文件](copy.md)文件复制
- [RUN 执行命令](../../04_image/4.5_build.md)执行构建命令
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南
- [COPY 复制文件](7.2_copy.md)文件复制
- [RUN 执行命令](../04_image/4.5_build.md)执行构建命令
- [最佳实践](../16_appendix/16.1_best_practices.md)Dockerfile 编写指南