dockerfile中如何传入变量
时间: 2023-03-04 17:56:12 浏览: 457
在 Dockerfile 中传入变量有多种方法,以下是其中几种常用的方法:
1. 使用 ARG 命令定义变量
在 Dockerfile 中可以使用 `ARG` 命令定义变量,例如:
```
ARG MY_VAR=default_value
```
在这个例子中,`MY_VAR` 是一个变量,它的默认值为 `default_value`。可以在 `docker build` 命令中使用 `--build-arg` 选项来传递一个新的值,例如:
```
docker build --build-arg MY_VAR=new_value .
```
在构建 Docker 镜像时,Docker 将会使用新的值来替换默认值。
2. 使用 ENV 命令定义环境变量
在 Dockerfile 中可以使用 `ENV` 命令来定义环境变量,例如:
```
ENV MY_VAR=default_value
```
与 ARG 命令不同的是,使用 ENV 命令定义的变量会被写入到容器的环境变量中,而 ARG 命令定义的变量则只在构建 Docker 镜像时有效。同样可以在 `docker build` 命令中使用 `--build-arg` 选项来传递一个新的值,但是在这种情况下,需要使用 ENV 命令来将变量写入到容器的环境变量中。
3. 在启动容器时使用 -e 选项传递变量
在启动容器时,可以使用 `-e` 选项来传递变量,例如:
```
docker run -e MY_VAR=new_value myimage
```
在这个例子中,`MY_VAR` 变量的值为 `new_value`。可以在 Dockerfile 中使用 ENV 命令将该变量写入到容器的环境变量中,例如:
```
ENV MY_VAR=default_value
```
在这个例子中,如果在启动容器时不使用 `-e` 选项来传递新的值,那么 `MY_VAR` 变量的值将会是 `default_value`。
阅读全文