docker -compose: ошибка при попытке установить MDBoostrap Pro с аутентификацией oauth - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь развернуть приложение, разработанное с помощью MD Bootstrap Pro, который устанавливается через аутентификацию npm + oauth2. По сути, в проект 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, но проблема вроде не решена. Я не хочу импортировать его как огромный актив (в основном, клонируя репо в активы моего проекта), я хотел бы реализовать его как зависимость npm.

1 Ответ

1 голос
/ 03 августа 2020

Думаю, вам нужно установить 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

Надеюсь, это поможет

...