# Base Stage for NodeJS FROM node:22-alpine as base ENV NODE_ENV=docker WORKDIR /usr/src/app # Installing dependencies with use of package-lock.json FROM base as deps RUN apk --no-cache add git COPY homebrewery/package.json homebrewery/package-lock.json ./ RUN npm ci --ignore-scripts # Build Stage FROM base as builder COPY --from=deps /usr/src/app/node_modules ./node_modules COPY homebrewery/ ./ RUN npm run build FROM base as runner ARG VERSION ARG REVISION ARG CREATED_AT LABEL org.opencontainers.image.authors="F.Weber " LABEL org.opencontainers.image.url="https://git.morlana.online/f.weber/homebrewery-docker/src/branch/main/README.md" LABEL org.opencontainers.image.documentation="https://git.morlana.online/f.weber/homebrewery-docker/src/branch/main/README.md" LABEL org.opencontainers.image.source="https://git.morlana.online/f.weber/homebrewery-docker" LABEL org.opencontainers.image.version="${VERSION}" LABEL org.opencontainers.image.revision="${REVISION}" LABEL org.opencontainers.image.licenses="MIT" LABEL org.opencontainers.image.created="${CREATED_AT}" # Defining env variables for homebrewery ENV HB_HOST=homebrewery.local.naturalcrit.com:8000 HB_NATURALCRIT_URL=local.naturalcrit.com:8010 HB_SECRET=secret PORT=8000 HB_ENABLE_V3=true HB_ENABLE_THEMES=true HB_LOCAL_ENVIRONMENTS=docker,local HB_PUBLIC_URL=https://homebrewery.naturalcrit.com ENV HB_IMAGES=null HB_FONTS=null # Adding tini for clean signal handling ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini RUN chmod +x /tini # Adding Entrypoint COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # Adding executables COPY --from=deps /usr/src/app/node_modules ./node_modules COPY --from=deps /usr/src/app/build ./build COPY homebrewery/ ./ EXPOSE 8000 ENTRYPOINT ["/entrypoint.sh"]