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"]