将主机环境变量传递给dockerfile
如何将主机环境变量(例如用户名和主机名)传递给dockerfile?
例如,如果我的用户名是taha
:
echo $USERtaha
如何编写Docker文件以获得相同的输出?
FROM centos:centos7 ARG myuser=$USER
CMD echo $myuser
回答:
我遇到了同样的问题。我的解决方案是在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
以列出容器中的所有变量。
以上是 将主机环境变量传递给dockerfile 的全部内容, 来源链接: utcz.com/qa/411203.html