Amazon web services AWS Parameter store中的环境变量值的前缀为$

Amazon web services AWS Parameter store中的环境变量值的前缀为$,amazon-web-services,docker,dockerfile,Amazon Web Services,Docker,Dockerfile,我有一个在AWS(Systems Manager)的参数存储下定义的环境变量列表,我正在使用下面的dockerfile并使用它来处理环境变量 FROM node:6-wheezy COPY . /src WORKDIR /src RUN npm install pm2 -g RUN npm install RUN wget https://github.com/Droplr/aws-env/raw/master/bin/aws-env-linux-amd64 -O /bin/aws-env &a

我有一个在AWS(Systems Manager)的参数存储下定义的环境变量列表,我正在使用下面的dockerfile并使用它来处理环境变量

FROM node:6-wheezy
COPY . /src
WORKDIR /src
RUN npm install pm2 -g
RUN npm install
RUN wget https://github.com/Droplr/aws-env/raw/master/bin/aws-env-linux-amd64 -O /bin/aws-env && \ chmod +x /bin/aws-env
VOLUME ["/var/logs"]
EXPOSE 8080
CMD eval $(aws-env) && pm2 start app.js -i 1 --name servicename --no-daemon
由于某些原因,在应用程序中使用(process.env)时,环境变量的所有值都以$sign作为前缀

我哪里出错了?dockerfile中有任何内容吗?

许多Docker映像(例如ruby)都使用/bin/sh作为默认shell。它崩溃了启用多行变量导出的$字符串表示法。因此,要使用aws env,需要将shell切换到/bin/bash:

     CMD ["/bin/bash", "-c", "eval $(aws-env) && rails s Puma"]