Acabo de enterarme de pnpm hoy y me ayudó a resolver mi problema con el tiempo de espera de npm en mi instalación, lo cual es increíble. Tengo un problema con pnpm aunque en la imagen de la ventana acoplable.
Anteriormente, con solo npm, tenía un usuario sin privilegios así
FROM node:14.17.3-slim # build args ARG NPM_AUTH_TOKEN ARG HOME=/home/app ARG NPMRC_PATH=$HOME/.npmrc # setup unprivileged user RUN useradd -Umrd $HOME app WORKDIR $HOME USER app # copy configuration COPY --chown=app:app "bin" "bin" COPY --chown=app:app "package.json" "package-lock.json" "webpack.config.js" ".babelrc" ./ RUN ./bin/write_npmrc && \ npm ci --production=false ENV NODE_ENV=development VOLUME ["$HOME/config", "$HOME/log", "$HOME/src"] CMD ["npm", "start"] EXPOSE 9000 Pero si cambio a pnpn , ya no puedo continuar con la creación de la imagen debido a Permiso denegado y necesito usar el usuario root.
FROM node:14.17.3-slim # build args ARG NPM_AUTH_TOKEN ARG HOME=/home/app ARG NPMRC_PATH=$HOME/.npmrc RUN apt-get update && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* RUN curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm WORKDIR $HOME # copy configuration COPY "bin" "bin" COPY "package.json" "pnpm-lock.yaml" "webpack.config.js" ".babelrc" ./ RUN ./bin/write_npmrc && \ pnpm install --frozen-lockfile ENV NODE_ENV=development VOLUME ["$HOME/config", "$HOME/log", "$HOME/src"] CMD ["pnpm", "start"] EXPOSE 9000¿Hay alguna manera de que pueda mantener
# setup unprivileged user RUN useradd -Umrd $HOME app WORKDIR $HOME USER app¿Con pnpm en su lugar?
Solo necesita cambiar a su usuario sin privilegios después de instalar los paquetes del sistema.
Ejemplo:
FROM node:14.17.3-slim # build args ARG NPM_AUTH_TOKEN ARG HOME=/home/app ARG NPMRC_PATH=$HOME/.npmrc RUN apt-get update && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* RUN curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm # setup unprivileged user RUN useradd -Umrd $HOME app && \ chown -R app:app $HOME WORKDIR $HOME USER app # copy configuration COPY --chown=app:app "bin" "bin" COPY --chown=app:app "package.json" "pnpm-lock.yaml" "webpack.config.js" ".babelrc" ./ RUN ./bin/write_npmrc && \ pnpm install --frozen-lockfile ENV NODE_ENV=development VOLUME ["$HOME/config", "$HOME/log", "$HOME/src"] CMD ["pnpm", "start"] EXPOSE 9000