【问题标题】:Set environment variable inside a podman's container by shell script通过 shell 脚本在 podman 的容器内设置环境变量
【发布时间】: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 以获得更好的兼容性。
  • 实际的目标环境是什么?大多数容器编排系统都有一种从容器外部设置容器环境变量的方法。

标签: podman almalinux


【解决方案1】:

我知道我哪里出错了。

setup.sh 是一个应该首先运行的脚本。我想了想,就像它是一个.bashrc,所以setup.sh 中的export 应该像.bashrc 一样工作。这就是我错误的根源。

脚本的预期角色不是真实的。

所以setup.sh的调用应该由source命令完成。

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 2013-09-04
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2019-05-17
    相关资源
    最近更新 更多