【发布时间】:2022-07-29 20:39:08
【问题描述】:
在船上使用 AlmaLinux 注册 podman 容器。
我需要设置一组环境变量后启动容器。所以我在容器中放入了一个脚本setenv.sh,内容如下:
#!/bin/sh
export MYVAR=value
echo $MYVAR
现在我正在运行容器:
$ podman run --rm -it -init almatest bash
% /opt/myapp/bin/setenv.sh
value
% echo $MYVAR
% env | grep MYVAR
%
我的变量在哪里?怎么回事?
编辑:使用. 或source 执行脚本确实可以防止环境变量消失。好的,我想这回答了我原来的问题。
我知道 podman 的 -env,但不能使用它 - 容器是生产的测试环境,没有 podman。我需要在容器内进行所有设置。
【问题讨论】:
-
如果您在本地进行,也会发生同样的情况。您不能通过执行脚本来导出环境变量。你需要采购它。
source /opt/myapp/bin/setenv.sh或. /opt/myapp/bin/setenv.sh以获得更好的兼容性。 -
实际的目标环境是什么?大多数容器编排系统都有一种从容器外部设置容器环境变量的方法。