content: # -- Base images
  # Pinned to specific versions, and updated by Renovate
  FROM node:8.11.3-alpine@sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d AS node
  FROM buildkite/puppeteer:1.1.1 AS puppeteer
  
  # -- Production environment
  FROM    node AS production
  ENV     NODE_ENV=production
  EXPOSE  3000
  WORKDIR /app
  COPY    package.json yarn.lock .yarnclean /app/
  RUN     apk --no-cache --virtual build-dependencies add python make g++ && \
          yarn install --frozen-lockfile --silent && \
          apk del build-dependencies
  COPY    . /app
  RUN     yarn run build
  CMD     ["yarn", "run", "start"]
  
  # -- Development
  # We can just override NODE_ENV and re-run install to get the additional dev
  # deps.
  FROM production as development
  ENV  NODE_ENV=development
  RUN  yarn install
  
  # -- Test
  # Same deps as development
  FROM development as test
  
  # -- Integration tests
  # Has headless chrome and puppeteer, and adds in Mocha so we can run our tests
  # directly inside it
  FROM puppeteer AS integration-tests
  RUN  npm i -g mocha@5
  ENV  PATH="${PATH}:/node_modules/.bin"
  
  # -- Default target
  FROM production
  