将所有主机环境变量传递给docker容器的最简单方法

前端之家收集整理的这篇文章主要介绍了将所有主机环境变量传递给docker容器的最简单方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用docker运行一堆-e标志甚至是.env似乎很麻烦.

有没有简单的方法将所有主机env变量传递给docker容器

最佳答案
我同意那些暗示你可能不想做你想做的事情的评论者.然而:

如果(a)你对具有特定前缀的环境变量感兴趣,并且(b)你的变量不包含任何空格,那么这样的东西就可以工作……在这里,我将所有的XDG_ *变量暴露给一个docker容器:

$docker run -it --rm --env-file <(env | grep XDG) alpine sh
/ # env | grep XDG
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/21937
XDG_MENU_PREFIX=gnome-
XDG_CURRENT_DESKTOP=GNOME
XDG_SESSION_DESKTOP=gnome
XDG_VTNR=2

如果你真的想要所有的环境变量,你可能需要编写一个较小的包装器程序来生成正确的引用输出(处理包含空格的变量),这将排除跨越多行的东西,比如BASH_FUNC_ *变量.然后你将使用你的包装器代替env | grep …在前面的例子中.

猜你在找的Docker相关文章