This repository has been archived on 2026-04-14. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
hardlounge/Dockerfile
Zodiac ecb9fe6b33 fix: Add entrypoint script to fix volume permissions at runtime
- Add docker-entrypoint.sh that runs as root to fix mounted volume permissions
- Creates required subdirectories (logs, users, packages) before app starts
- Copies default config.js if missing
- Drops to node user via su-exec before running the app
- Update Dockerfile to use entrypoint and install su-exec
- Update docker-compose.yml with UID/GID mapping and separate volume mounts
- Wrap filesystem operations in try-catch to handle permission errors gracefully
2025-12-29 19:02:58 -08:00

21 lines
864 B
Docker

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