FROM --platform=${BUILDPLATFORM:-linux/amd64} node:21-alpine as builder ENV NODE_ENV=development \ VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org RUN apk --no-cache add openssl ca-certificates wget && \ apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python3 && \ wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk && \ apk add --force-overwrite glibc-2.35-r0.apk WORKDIR /opt/verdaccio-build COPY . . RUN npm -g i pnpm@8.9.0 && \ pnpm config set registry $VERDACCIO_BUILD_REGISTRY && \ pnpm install --frozen-lockfile --ignore-scripts && \ rm -Rf test && \ pnpm run build # FIXME: need to remove devDependencies from the build # NODE_ENV=production pnpm install --frozen-lockfile --ignore-scripts # RUN pnpm install --prod --ignore-scripts FROM node:21-alpine LABEL maintainer="https://github.com/verdaccio/verdaccio" ENV VERDACCIO_APPDIR=/opt/verdaccio \ VERDACCIO_USER_NAME=verdaccio \ VERDACCIO_USER_UID=10001 \ VERDACCIO_PORT=4873 \ VERDACCIO_PROTOCOL=http ENV PATH=$VERDACCIO_APPDIR/docker-bin:$PATH \ HOME=$VERDACCIO_APPDIR WORKDIR $VERDACCIO_APPDIR RUN apk --no-cache add openssl dumb-init RUN mkdir -p /verdaccio/storage /verdaccio/plugins /verdaccio/conf COPY --from=builder /opt/verdaccio-build . RUN ls packages/config/src/conf ADD packages/config/src/conf/docker.yaml /verdaccio/conf/config.yaml RUN adduser -u $VERDACCIO_USER_UID -S -D -h $VERDACCIO_APPDIR -g "$VERDACCIO_USER_NAME user" -s /sbin/nologin $VERDACCIO_USER_NAME && \ chmod -R +x $VERDACCIO_APPDIR/packages/verdaccio/bin $VERDACCIO_APPDIR/docker-bin && \ chown -R $VERDACCIO_USER_UID:root /verdaccio/storage && \ chmod -R g=u /verdaccio/storage /etc/passwd USER $VERDACCIO_USER_UID EXPOSE $VERDACCIO_PORT VOLUME /verdaccio/storage ENTRYPOINT ["uid_entrypoint"] CMD $VERDACCIO_APPDIR/packages/verdaccio/bin/verdaccio --config /verdaccio/conf/config.yaml --listen $VERDACCIO_PROTOCOL://0.0.0.0:$VERDACCIO_PORT