FROM node:10-alpine

# Install build dependancies.
RUN apk --no-cache add git python

# Create app directory.
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Setup the environment for production.
ENV NODE_ENV production

# Bundle application source.
COPY . /usr/src/app

# Store the current git revision.
ARG REVISION_HASH
RUN mkdir -p dist/core/common/__generated__ && \
  echo "{\"revision\": \"${REVISION_HASH}\"}" > dist/core/common/__generated__/revision.json

# Install build static assets and clear caches.
RUN NODE_ENV=development npm install && \
  npm run generate && \
  npm run build && \
  npm prune --production

# Setup the environment
ENV PATH /usr/src/app/bin:$PATH
ENV PORT 5000
EXPOSE 5000
ENV NODE_ENV production

CMD ["npm", "run", "start"]
