簡體   English   中英

私有節點模塊拉入 docker

[英]Private node module pull inside docker

我有一個 node_module 的私有存儲庫,我通過將它包含在 package.json 中來安裝它

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

當我復制 docker 映像中的所有服務器文件並嘗試執行 npm 安裝時,它無法安裝 package 並拋出我沒有正確的訪問權限。 我想我必須通過在 Dockerfile 中復制我的 id_rsa.pub 並將其添加為授權密鑰來進行授權,這樣做的正確方法是什么?

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"]

您需要掛載 SSH 私鑰( /home/yourname/.ssh/id_rsa )。

您應該避免將私鑰放在 Docker 圖像中。 一種解決方法可能是多階段圖像(安全性可能仍有爭議)。

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"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM