FROM node:20-alpine

WORKDIR /app

COPY package.json ./
RUN npm install --omit=dev

RUN apk add --no-cache openssl && \
    mkdir -p /app/ssl && \
    openssl req -x509 -newkey rsa:2048 \
      -keyout /app/ssl/key.pem -out /app/ssl/cert.pem \
      -days 3650 -nodes -subj "/CN=shelem-game" && \
    apk del openssl

COPY server.js ./
COPY gen-icons.js ./
COPY public/ ./public/
# cards/ supplied at runtime via docker-compose volume mount
RUN rm -rf /app/public/cards && mkdir -p /app/public/cards

RUN node gen-icons.js

EXPOSE 4000 4443

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