docker-compose:尝试使用 oauth 身份验证安装 MDBoostrap Pro 时出错

docker-compose: error while trying to install MDBoostrap Pro with oauth authentication

我正在尝试使用通过 npm + oauth2 身份验证安装的 MDBootstrap Pro 部署和开发应用程序。 基本上,进入 dir 项目,为了安装它,你必须 运行 以下命令:

npm install git+https://oauth2:YOUR_TOKEN@git.mdbootstrap.com/mdb/angular/ng-uikit-pro-standard.git --save

它工作正常,直到您必须将项目放入容器中。

这是我的 Dockerfile:

FROM node:13.10-alpine AS builder
COPY ./ ./portal/
WORKDIR /portal
RUN npm i
RUN $(npm bin)/ng build --prod

FROM httpd:2.4
COPY --from=builder /portal/dist/InternationalItaly/ /usr/local/apache2/htdocs/

当构建到达第 RUN npm i 行时,它崩溃了,原因如下:

npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t https://oauth2:TOUR_TOKEN@git.mdbootstrap.com/mdb/angular/ng-uikit-pro-standard.git

我在npm i之前试过安装,但是问题好像没有解决。我不想将它作为一个巨大的资产导入(基本上,将 repo 克隆到我项目的资产中),我想将它作为 npm 依赖项来实现。

我认为你必须安装 git

试试这个:

FROM node:13.10-alpine AS builder
RUN apk add --no-cache git
COPY ./ ./portal/
WORKDIR /portal
RUN npm i
RUN $(npm bin)/ng build --prod

FROM httpd:2.4
COPY --from=builder /portal/dist/InternationalItaly/ /usr/local/apache2/htdocs/

个人比较喜欢git+ssh://...

一个例子:

ARG KNOWN_HOSTS
ARG ID_RSA

RUN apk add --no-cache git openssh
RUN mkdir ~/.ssh && echo $KNOWN_HOSTS >> ~/.ssh/known_hosts && echo -en $ID_RSA >> ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
RUN mv ssh_config ~/.ssh/ssh_config

希望对您有所帮助