ARG NODE_IMAGE_VERSION=23-alpine
FROM node:${NODE_IMAGE_VERSION}

ARG VERSION

WORKDIR /opt/app

RUN chown -R node:node /opt/app

# Allow node to bind to port 80
RUN apk update && apk add libcap

USER node

RUN wget https://github.com/lovasoa/whitebophir/archive/refs/tags/v${VERSION}.zip -O artifact.zip \
    && unzip artifact.zip \
    && mv whitebophir-${VERSION}/* .
    && rm artifact.zip

RUN npm ci --production

EXPOSE 3000

VOLUME /opt/app/server-data

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