This implements the configuration mechanism I described in #2621. The heavy lifting is delegated to [node-config](https://github.com/lorenwest/node-config) with a minor assist from [dotenv](https://github.com/motdotla/dotenv). `private/secret.json` has been replaced with environment variables and/or `config/local.yml`. See `doc/server-secrets.md`.
22 lines
413 B
Docker
22 lines
413 B
Docker
FROM node:8.9.4-alpine
|
|
|
|
RUN apk add --no-cache gettext imagemagick librsvg git
|
|
|
|
RUN mkdir -p /usr/src/app
|
|
RUN mkdir /usr/src/app/private
|
|
WORKDIR /usr/src/app
|
|
|
|
ARG NODE_ENV
|
|
ENV NODE_ENV $NODE_ENV
|
|
COPY package.json /usr/src/app/
|
|
RUN npm install
|
|
COPY . /usr/src/app
|
|
RUN npm run build
|
|
RUN npm prune --production
|
|
RUN npm cache clean --force
|
|
|
|
# Do we need to list the environment variables here?
|
|
node server
|
|
|
|
EXPOSE 80
|