当我尝试使用我在Dockerfile中设置的环境变量($HOME
)时,在启动时运行的脚本中,未设置$HOME
。如果我在容器中运行printenv
,则设置$ HOME。所以我很困惑,不知道发生了什么。
我正在使用phusion / passenger-customizable图像,以便我可以通过pm2运行自定义节点服务器。我需要一个不同版本的Node,然后捆绑在节点特定的乘客图像中。
# 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
echo $HOME
# run some scripts that reference the $HOME directory
我需要做什么才能在我的启动脚本中引用Dockerfile中设置的环境变量?或者我只需要对启动脚本中的路径进行硬编码并将其称为一天?
答案 0 :(得分:0)
$HOME
。按@Sebastian运行printenv
时,我所有的其他变量都在$HOME
。我在它的前面添加了我公司的首字母,它按预期工作。