Alpine linux 在哪里设置系统默认环境变量?

问题描述 投票:0回答:2

我知道,使用 Ubuntu,您可以在

/etc/environment
中设置环境变量的默认值;我在 Alpine linux 中没有看到该文件。是否有不同的位置用于设置系统范围的默认值?

configuration environment-variables default alpine-linux
2个回答
45
投票

看来

/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
的内容,您可以在
.sh
中创建一个扩展名为
/etc/profile.d/
的文件,并且每次加载环境变量都必须传递
--login
,例如
docker exec -it container sh --login


19
投票

如果您正在谈论 Alpine Docker 镜像,那么您可以在 Dockerfile 中定义这些环境变量,如下所示。这里不需要每次都通过

--login
。这些变量将在全球系统范围内自动可用。

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

您还可以通过创建脚本来定义别名、环境变量、修改 PATH 等,例如

/etc/.shinit
并定义一个
ENV
变量来指向该脚本,并且该脚本将在每次 shell 调用时运行。这是一个例子:

FROM alpine
ENV ENV=/etc/.shinit
RUN echo 'export "PATH=$PATH:/root/.local/bin"' > ${ENV}

所有这些都在 ash(1) 手册页中进行了解释。

© www.soinside.com 2019 - 2024. All rights reserved.