如何将环境变量传递给Docker容器应用程序用户

时间:2020-08-17 10:06:48

标签: docker

使用Docker Compose,如何将环境变量传递给应用程序用户外壳程序,以便在该用户运行命令时始终加载环境变量?

例如,我已经尝试通过Dockerfile:

FROM phusion/passenger-ruby26

ENV FOO=bar

RUN dpkg --clear-avail
RUN rm -rf /var/lib/apt/lists/*
RUN apt-get -qq update --fix-missing
RUN apt-get -qq install -f
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get clean
RUN apt-get -qq install -y build-essential apt apt-utils \
                           software-properties-common wget inetutils-ping \
                           sudo netcat

COPY --chown=app:app . .

ENTRYPOINT ["sh", "./startup.sh"]

startup.sh是:

_user="$(id -u -n)"
echo "User name : $_user"

su - app -c 'echo "**************** root printenv:"'
printenv
su - app -c 'echo "**************** app printenv:"'
su - app -c 'printenv'

build / run的输出包含许多现有/预设变量-但没有FOO当我不使用sudo时,我可以看到printenv中的变量以root身份运行。但是,该变量不适用于应用程序用户。

向用户app提供FOO的最佳方法是什么?非常感谢您的帮助。

0 个答案:

没有答案