将主机环境变量传递给dockerfile

如何将主机环境变量(例如用户名和主机名)传递给dockerfile

例如,如果我的用户名是taha

echo $USER

taha

如何编写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

回到顶部