如何在 passenger-docker 容器的启动脚本中使用环境变量

How do you use environment variables in the start up scripts in a passenger-docker container

当我尝试使用我在 Dockerfile 中设置的环境变量 ($HOME) 时,在启动时 运行s 的脚本中,未设置 $HOME。如果我在容器中 运行 printenv , $HOME 被设置。所以我很困惑,不知道发生了什么。

我正在使用 phusion/passenger-customizable 图像,因此我可以通过 pm2 运行 自定义节点服务器。我需要一个不同版本的 Node,然后捆绑在特定于节点的乘客图像中。

Docker 文件

# Simplified
FROM phusion/passenger-customizable:0.9.27
RUN apt-get update && apt-get upgrade -y -o Dpkg::Options::="--force-confold"

# Set environment variables needed for the docker image.
ARG HOME=/opt/var/app
ENV HOME $HOME

# Use baseimage-docker's init process.
CMD ["/sbin/my_init"]

RUN mkdir /etc/service/app
ADD start.sh /etc/service/app/run
RUN chmod a+x /etc/service/app/run

start.sh

echo $HOME
# run some scripts that reference the $HOME directory

我需要做什么才能在我的启动脚本中引用 Dockerfile 中设置的环境变量?还是我只需要在该启动脚本中硬编码路径并收工?

$HOME 以某种方式保留。根据@Sebastian,当 运行 printenv 时,我的所有其他变量都在那里但没有 $HOME。我在它前面加上了我公司的首字母,它按预期工作。