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.6 ENV 设置环境变量
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 基本语法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 格式一:单个变量
|
||||
|
||||
@@ -16,8 +20,12 @@ ENV <key1>=<value1> <key2>=<value2> ...
|
||||
|
||||
### 基本用法
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 设置单个变量
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ENV NODE_VERSION 20.10.0
|
||||
ENV APP_ENV production
|
||||
@@ -25,6 +33,8 @@ ENV APP_ENV production
|
||||
|
||||
#### 设置多个变量
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ENV NODE_VERSION=20.10.0 \
|
||||
APP_ENV=production \
|
||||
@@ -37,7 +47,11 @@ ENV NODE_VERSION=20.10.0 \
|
||||
|
||||
### 环境变量的作用
|
||||
|
||||
#### 1. 后续指令中使用
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。后续指令中使用
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ENV NODE_VERSION=20.10.0
|
||||
@@ -57,7 +71,9 @@ WORKDIR $APP_HOME
|
||||
COPY . $APP_HOME
|
||||
```
|
||||
|
||||
#### 2. 容器运行时使用
|
||||
#### 2。容器运行时使用
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ENV DATABASE_URL=postgres://localhost/mydb
|
||||
@@ -114,7 +130,11 @@ $ docker run -e APP_ENV=development -e DEBUG=true myimage
|
||||
$ docker run --env-file .env myimage
|
||||
```
|
||||
|
||||
#### .env 文件格式
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 。env 文件格式
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -137,8 +157,14 @@ DATABASE_URL=postgres://localhost/mydb
|
||||
| **覆盖方式** | `docker run -e` | `docker build --build-arg` |
|
||||
| **适用场景** | 应用配置 | 构建参数(如版本号) |
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 组合使用
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ARG 接收构建时参数
|
||||
|
||||
@@ -163,7 +189,11 @@ $ docker build --build-arg NODE_VERSION=18 -t myapp .
|
||||
|
||||
### 最佳实践
|
||||
|
||||
#### 1. 统一管理版本号
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。统一管理版本号
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 好:版本集中管理
|
||||
@@ -179,7 +209,9 @@ RUN apt-get install nginx=${NGINX_VERSION}
|
||||
RUN apt-get install nginx=1.25.0
|
||||
```
|
||||
|
||||
#### 2. 不要存储敏感信息
|
||||
#### 2。不要存储敏感信息
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ 错误:密码写入镜像
|
||||
@@ -193,7 +225,9 @@ ENV DB_PASSWORD=secret123
|
||||
...
|
||||
```
|
||||
|
||||
#### 3. 为应用提供合理默认值
|
||||
#### 3。为应用提供合理默认值
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
ENV APP_ENV=production \
|
||||
@@ -201,7 +235,9 @@ ENV APP_ENV=production \
|
||||
LOG_LEVEL=info
|
||||
```
|
||||
|
||||
#### 4. 使用有意义的变量名
|
||||
#### 4。使用有意义的变量名
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 好:清晰的命名
|
||||
@@ -219,7 +255,9 @@ ENV HOST=localhost \
|
||||
|
||||
### 常见问题
|
||||
|
||||
#### Q: 环境变量在 CMD 中不展开
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:环境变量在 CMD 中不展开
|
||||
|
||||
exec 格式不会自动展开环境变量:
|
||||
|
||||
@@ -233,7 +271,7 @@ CMD ["python", "app.py", "--port", "$PORT"]
|
||||
CMD ["sh", "-c", "python app.py --port $PORT"]
|
||||
```
|
||||
|
||||
#### Q: 如何查看容器的环境变量
|
||||
#### Q:如何查看容器的环境变量
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -242,7 +280,9 @@ $ docker inspect mycontainer --format '{{json .Config.Env}}'
|
||||
$ docker exec mycontainer env
|
||||
```
|
||||
|
||||
#### Q: 多行 ENV 还是多个 ENV
|
||||
#### Q:多行 ENV 还是多个 ENV
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ✅ 推荐:减少层数
|
||||
|
||||
Reference in New Issue
Block a user