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

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

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

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

Dockerfile

# 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.是

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

我需要做什么才能在我的启动脚本中引用Dockerfile中设置的环境变量?或者我只需要对启动脚本中的路径进行硬编码并将其称为一天?

docker passenger
1个回答
0
投票

$HOME以某种方式保留。当运行printenv时,每个@Sebastian,我所有的其他变量,但不是$HOME。我在它的前面加上我的公司的首字母,它按预期工作。

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