环境变量未在Mac上显示

亨利·乔治

尽管可以在外壳中访问,但通过〜/ .bash_profile或〜/ .bashrc在外壳外部设置的环境变量在docker或env中不会出现。

Bash_profile包含以下行TEST_ENV_VAR=123,重新启动终端后,可以通过访问变量$TEST_ENV_VAR,但是docker和env无法访问此环境变量。

Henrys-MacBook-Pro:~ henry$ echo $TEST_ENV_VAR 
123          
Henrys-MacBook-Pro:~ henry$ docker run -it -e TEST_ENV_VAR ubuntu env | grep TEST_ENV_VAR
Henrys-MacBook-Pro:~ henry$ env | grep TEST_ENV_VAR

但是终端可以访问它,甚至将其传递给docker:

Henrys-MacBook-Pro:~ henry$ docker run -it -e TEST_ENV_VAR=${TEST_ENV_VAR} ubuntu env | grep TEST_ENV_VAR
TEST_ENV_VAR=123

这个问题通常与环境变量无关,因为终端中设置的变量按预期工作:

Henrys-MacBook-Pro:~ henry$ export TEST_ENV_VAR=1234
Henrys-MacBook-Pro:~ henry$ docker run -it -e TEST_ENV_VAR ubuntu env | grep TEST_ENV_VAR
TEST_ENV_VAR=1234

我正在运行macOS Mojave,10.14.5,经典终端,docker 19.03.4,ls -al〜的输出:

-rw-r--r--   1 henry  staff    455 Nov 12 11:50 .bash_profile
切普纳

docker实际上没有启动容器。相反,它向Docker引擎发送一条消息(在与执行环境无关的单独环境中运行docker),要求为您启动一个容器。因此,新容器不会在您当前的Shell环境中继承任何变量。

通过TEST_ENV_VAR=${TEST_ENV_VAR}尝试,您将明确地告诉在新容器中docker创建一个名为的环境变量TEST_ENV_VAR,其值具有通过TEST_ENV_VAR now扩展产生的值,而不是尝试从适当的环境继承该变量。

即使忽略了这一点,您实际上并没有使用TEST_ENV_VAR=123;创建环境变量您只创建了一个普通的shell变量。对于env看到它,你需要先将其导出。

$ TEST_ENV_VAR=123
$ env | grep TEST_ENV_VAR
$ export TEST_ENV_VAR
$ env | grep TEST_ENV_VAR
TEST_ENV_VAR=123

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在Mac中设置ANDROID_HOME环境变量

来自分类Dev

TclError:EC2上没有显示名称,也没有$ DISPLAY环境变量

来自分类Dev

环境变量iOS

来自分类Dev

导出的环境变量与环境变量

来自分类Dev

在本地设置Rails环境变量(Mac OS X)

来自分类Dev

Mac OS X 10.9-设置永久环境变量

来自分类Dev

从Mac OS中的代码检索环境变量值

来自分类Dev

OSX上的Eclipse中的环境变量

来自分类Dev

插入环境变量

来自分类Dev

Java程序无法获取环境变量mac

来自分类Dev

在app.yaml上指定但未在main.go上获取的环境变量

来自分类Dev

Mac上的Rstudio中的环境变量

来自分类Dev

Linux上的环境变量PATH

来自分类Dev

无法在Mac OsX上设置环境变量

来自分类Dev

Azure LocalCache未在ASE上设置Ready环境变量

来自分类Dev

Java环境变量

来自分类Dev

Heroku环境变量$ DATABASE_URL和$ PORT未在dyno中显示(heroku ps:exec)

来自分类Dev

如何在MAC上更新我的ANDROID_SDK_ROOT / JAVA_HOME / PATH环境变量以构建Android

来自分类Dev

AWS Elasticbeanstalk环境变量上的Mulicontainer Docker环境

来自分类Dev

Mac OS X使“旧”环境变量保持不变

来自分类Dev

导出的环境变量与环境变量

来自分类Dev

在Mac OS X上设置环境变量

来自分类Dev

为什么不会将添加到.profile的环境变量显示在屏幕上

来自分类Dev

env和printenv显示哪些环境变量/ shell变量

来自分类Dev

Ubuntu上的“环境变量PATH”

来自分类Dev

如何显示systemd单元的环境变量?

来自分类Dev

Mac将钥匙串密码用于环境变量

来自分类Dev

如何在 Mac 上设置 OpenCv 环境变量和路径变量?

来自分类Dev

Mac 上带有 PATH 环境变量的 Makefile

Related 相关文章

热门标签

归档