Где установить переменные среды среды по умолчанию в Alpine linux?

Я знаю, что с Ubuntu вы можете установить значения по умолчанию для переменных среды в /etc/environment; Я не вижу этот файл в Alpine linux. Есть ли другое место для установки общесистемных значений по умолчанию?

Ответ 1

Кажется, что /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 для загрузки переменных env, например, docker exec -it container sh --login.

Ответ 2

Если вы говорите об образе Alpine Docker, то вы можете определить эти переменные env внутри Dockerfile, как показано ниже. Здесь вам не нужно проходить --login каждый раз. Эти переменные будут автоматически доступны во всей системе.

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

Также вы можете определить свой псевдоним, env и т.д. Внутри /etc/profile и определить ENV внутри Dockerfile, как показано ниже, для автоматического создания профиля.

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