FROM node:16-bullseye

WORKDIR /app

# Dependencies first so the install layer caches independently of app source.
COPY package.json yarn.lock ./

RUN yarn install --frozen-lockfile --network-timeout 600000 \
 && yarn cache clean

COPY . .

# Config comes from the environment in k8s; libflitter still expects the file
# to exist, so ship an empty one. (.dockerignore keeps the real .env out.)
RUN touch /app/.env

CMD ["node", "index.js"]
