为Docker映像生成.env文件

时间:2019-04-01 13:40:01

标签: node.js docker environment-variables

我想生成一个.env文件,并在使用Dockerfile构建docker的过程中将其推送到docker映像。 问题是.env文件未复制到docker映像。 我试图将COPY .env添加到/website/.env,但找不到它。 我在构建过程中执行了一个nodejs脚本,这些脚本从AWS获取环境,然后创建一个.env文件。

FROM node:10.15.3-alpine

ARG SERVER_ENV

# Create app directory

RUN mkdir /website
WORKDIR /website

COPY . /website/
RUN node aws ${SERVER_ENV}
COPY .env /website/.env
COPY package.json yarn.lock ./
RUN ls -al
RUN pwd

# Install Yarn
RUN npm install -g yarn@1.15.2

# Install app dependencies
RUN yarn install

# Build source files
RUN yarn run build

更新 我终于找到了解决它的方法。 我像这样在Dockerfile中分离任务:

FROM mhart/alpine-node:10 as env
ARG SERVER_ENV

WORKDIR /usr/src
COPY aws.js /usr/src
RUN yarn add aws-sdk
COPY . .
RUN node aws ${SERVER_ENV}

FROM mhart/alpine-node:10 as base
WORKDIR /usr/src
COPY package.json yarn.lock /usr/src/
RUN yarn install
COPY . .
COPY --from=env /usr/src .
RUN yarn build


FROM mhart/alpine-node:10
WORKDIR /usr/src
COPY --from=base /usr/src .

1 个答案:

答案 0 :(得分:0)

也许您有一个.dockerignore文件,该文件阻止.env文件复制到映像?