FROM node:22-alpine WORKDIR /app COPY server/competition-api.mjs /app/server/competition-api.mjs COPY public/competition-state.json /app/public/competition-state.json RUN mkdir -p /app/data && touch /app/data/.keep && chown -R node:node /app USER node ENV NODE_ENV=production \ COMPETITION_DATA_PATH=/app/data/competition-state.json HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD node -e "require('node:http').get('http://127.0.0.1:8787/api/competition/ping', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))" CMD ["node", "server/competition-api.mjs"]