FROM node:20-alpine
RUN apk add --no-cache --virtual=build-dependencies build-base git python3-dev py3-setuptools && \
apk add --no-cache yarn su-exec
WORKDIR /var/opt/hardlounge-src
ENV THELOUNGE_HOME /var/opt/hardlounge
COPY --chown=node:node package.json yarn.lock .
USER node
RUN yarn install
COPY --chown=node:node . .
RUN NODE_ENV=production yarn build && \
yarn link && \
yarn --non-interactive cache clean && \
ln -s /var/opt/hardlounge-src/index.js /var/opt/hardlounge-src/hardlounge
USER root
RUN apk del --purge build-dependencies && \
mkdir -p /var/opt/hardlounge/logs /var/opt/hardlounge/users /var/opt/hardlounge/packages && \
chown -R node:node /var/opt/hardlounge
COPY --chmod=755 docker-entrypoint.sh /docker-entrypoint.sh
EXPOSE 9000
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/var/opt/hardlounge-src/hardlounge", "start"]