作者:手机用户2502932023 | 来源:互联网 | 2023-01-27 11:58
如何将主机环境变量(如用户名和主机名)传递给dockerfile?
例如,如果我的用户名是taha
:
echo $USER
taha
如何编写Docker文件以获得相同的输出?
FROM centos:centos7
ARG myuser=$USER
CMD echo $myuser
Serey..
10
我遇到了同样的问题.我的解决方案是在docker-compose.yml中提供变量,因为yml支持使用环境变量.
在我看来,这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似的东西一遍又一遍地输入它 docker run -e myuser=$USER . . .
声明ENV myuser=$USER
将$myuser
无法在容器中工作,将设置为null
.
所以你的docker-compose.yml看起来像这样:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
environment:
- "myuser=${USER}"
并且可以使用short命令运行 docker-compose up
要检查是否已应用变量,请运行docker exec -it container-name printenv
以列出容器中的所有变量.
1> Serey..:
我遇到了同样的问题.我的解决方案是在docker-compose.yml中提供变量,因为yml支持使用环境变量.
在我看来,这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似的东西一遍又一遍地输入它 docker run -e myuser=$USER . . .
声明ENV myuser=$USER
将$myuser
无法在容器中工作,将设置为null
.
所以你的docker-compose.yml看起来像这样:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
environment:
- "myuser=${USER}"
并且可以使用short命令运行 docker-compose up
要检查是否已应用变量,请运行docker exec -it container-name printenv
以列出容器中的所有变量.
2> Theophile Da..:
启动Docker容器时,您可以使用以下-e
选项传递环境变量:
docker run -it -e USER=$USER /bin/bash