简体   繁体   中英

Private node module pull inside docker

I have a private repository of a node_module which I install by including it in package.json

ssh://git@github.com/iamsaquib/<pivate-repo>.git

When I am copying all server files inside docker image and try to do a npm install it is unable to install the package and throws I don't have proper access rights. I think I have to authorize by copying my id_rsa.pub inside Dockerfile and add it as authorized key, what is the correct way to do this?

Dockerfile

FROM node:12-slim

ENV NODE_ENV=development

WORKDIR /app
USER root

COPY . .

RUN ./install.sh
RUN ./build.sh

EXPOSE 8000 

CMD ["./run.sh"]

You need to mount SSH private key ( /home/yourname/.ssh/id_rsa ).

You should avoid putting private key in Docker images. One work around could be multi-stage image (security might still be debatable).

FROM node:12-slim as installer
ENV NODE_ENV=development
WORKDIR /app
USER root
COPY /home/yourname/.ssh /home/root/.ssh
COPY /home/yourname/.gitconfig /home/root/.gitconfig
COPY . .
RUN ./install.sh
RUN ./build.sh
RUN rm -rf /home/root/.ssh
RUN rm -rf /home/root/.gitconfig

# Final image
FROM node:12-slim
WORKDIR /app
ENV NODE_ENV=development
USER root
COPY --from=installer /app .
EXPOSE 8000 
CMD ["./run.sh"]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM