Configuration 在Alpine linux中,在何处设置系统默认环境变量?

Configuration 在Alpine linux中,在何处设置系统默认环境变量?,configuration,environment-variables,default,alpine,Configuration,Environment Variables,Default,Alpine,我知道,使用Ubuntu,您可以在/etc/environment中为环境变量设置默认值;我在Alpine linux中没有看到该文件。是否有其他位置用于设置系统范围的默认值?似乎/etc/profile是我能找到的最佳位置。至少在那里设置了一些环境变量: export CHARSET=UTF-8 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export PAGER=less export PS

我知道,使用Ubuntu,您可以在
/etc/environment
中为环境变量设置默认值;我在Alpine linux中没有看到该文件。是否有其他位置用于设置系统范围的默认值?

似乎
/etc/profile
是我能找到的最佳位置。至少在那里设置了一些环境变量:

export CHARSET=UTF-8
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '

umask 022

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done

根据
/etc/profile
的内容,您可以在
/etc/profile.d/
中创建一个扩展名为
.sh
的文件,并且您必须每次通过
--login
来加载环境变量,例如
docker exec-it容器sh--login
如果您正在谈论的是Alpine docker image,然后可以在Dockerfile中定义这些环境变量,如下所示。在这里,您不需要每次都通过
--login
。这些变量将在全球范围内自动可用

FROM alpine
ENV GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXXXX \
    COMPOSER_HOME=/home/deploy/.composer
您还可以在/etc/profile中定义别名、env etc,并在Dockerfile中定义
env
,如下所示,以自动获取配置文件

FROM alpine
ENV GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXXXX \
    COMPOSER_HOME=/home/deploy/.composer
ENV ENV="/etc/profile" 

在这里/etc/lbu/lbu怎么样。conf@Rick没有看到效果。你知道阿尔卑斯山有什么好的文档吗?或者你有更多关于在阿尔卑斯山设置环境的细节、技巧、技巧吗?我也在寻找答案。。。你找到什么了吗?不幸的是我没找到多少。我发现的唯一其他信息来自标题“配置继承”@Rick,这不是正确的信息;您的URL指的是Alpine Mail用户代理,而不是基于Linux的最小容器适应操作系统。当您以交互方式启动Alpine docker容器时,如何使
/etc/profile
自动运行?我已将一些别名添加到
aliases.sh
文件中,并将其放置在
/etc/profile.d
中,但当我使用
docker run-it[my_container]sh
启动容器时,我的别名不处于活动状态。我必须手动键入
/每次从命令行执行etc/profile
。登录时运行
/etc/profile
是否需要其他配置?任何洞察都将不胜感激@JeffKilbride使用
sh--登录
,而不仅仅是
sh
@vladflov谢谢!我在另一个帖子里问了这个问题,也得到了答案。这同样有效:
sh-l
@Tonsic您可能会发现在sudo中保存环境变量很有趣。这也适用于非根用户cronjob。例如,使用运行crond作为root的Docker容器。还有一个用于用户foo的crontab,它运行一个cronjob,该cronjob需要来自/etc/profile的环境变量。这实际上是一个非常好的选择,没有--login的开销。非常感谢。快速提示:由
ENV
设置的值将由所有其他将您的图像用作
的docker图像继承。当您的
/etc/profile
在其他子映像中可用时,可能会产生意外后果