我有一个环境变量,它是一种json表示形式
export ENV={"outer":{"inner":{"key":"apiValue"}}}
当我使用envsubst
替换此值时envsubst < testenv > testapp
替换为空字符串
testenv
JSON.parse($ENV).outer.inner.key
testapp
JSON.parse().outer.inner.key
但是,如果我将它设置为一个简单的值,如export $ ENV = syz,这将按预期工作。这可以实现吗?
这是一个完整的dockerfile
FROM nodesource/jessie:0.12.7
MAINTAINER
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# cache package.json and node_modules to speed up builds
ADD src src
ADD package.json package.json
ADD node_modules node_modules
# Install packages for envsubst
RUN apt-get update && apt-get upgrade -y --force-yes && rm -rf /var/lib/apt/lists/*;
RUN apt-get update
RUN apt-get install -y gettext-base
# Substitute dependencies from environment variables
RUN rm src/js/app.js
RUN envsubst < src/js/envapp.js > src/js/app.js
RUN npm install
EXPOSE 8000
CMD [ "npm", "start"]