ARG NODE_VERSION=22 # ============================================================================== # STAGE 1: Builder for Base Dependencies # ============================================================================== FROM node:${NODE_VERSION}-alpine AS builder # Install fonts RUN \ apk --no-cache add --virtual .build-deps-fonts msttcorefonts-installer fontconfig && \ update-ms-fonts && \ fc-cache -f && \ apk del .build-deps-fonts && \ find /usr/share/fonts/truetype/msttcorefonts/ -type l -exec unlink {} \; # Install essential OS dependencies RUN echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/main" >> /etc/apk/repositories && echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories && \ apk update && \ apk add --no-cache \ git \ openssh \ openssl \ graphicsmagick \ tini \ tzdata \ ca-certificates \ libc6-compat \ jq \ ffmpeg # Install full-icu RUN npm install -g full-icu@1.5.0 RUN rm -rf /tmp/* /root/.npm /root/.cache/node /opt/yarn* && \ apk del apk-tools # ============================================================================== # STAGE 2: Final Base Runtime Image # ============================================================================== FROM node:${NODE_VERSION}-alpine COPY --from=builder / / WORKDIR /home/node ENV NODE_ICU_DATA=/usr/local/lib/node_modules/full-icu EXPOSE 5678/tcp