Usign podman容器,附带AlmaLinux。
在启动容器后,我需要设置一组环境变量。因此,我在容器中放入了一个脚本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。我需要从容器内部进行所有设置。
我知道哪里出了问题。
setup.sh
是一个应该首先运行的脚本。我想了想,就像它是一个.bashrc
,所以setup.sh
中的export
应该和.bashrc
中的一样工作。这就是我错误的根源。
剧本的预期角色不是真实的。
所以setup.sh
的调用应该通过source
命令来完成。