docker - 如何使用 docker 从私有存储库安装软件包
问题描述
我正在从我的私人存储库安装一个包。我可以使用以下方法安装它:
npm i -S git+https://oauth2:XXXXXXX@gitlab.com/mygroup/acl-api.git
我正在使用 docker 容器,但在安装过程中出现错误:
npm ERR! path git
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm ERR! syscall spawn git
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t https://oauth2:XXXXXXX@gitlab.com/mygroup/acl-api.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
我该如何解决?
我的码头文件:
FROM node:alpine
COPY package.json package.json
COPY src src
COPY .babelrc .babelrc
RUN npm install
RUN npm run gitlab-build
RUN ls
EXPOSE 8080
CMD ["npm", "run", "docker-start"]
解决方案
如果你想拉存储库,你应该添加git
和其他包openssh-client
node:alpine
npm
FROM node:alpine
RUN apk add --update \
python \
python-dev \
py-pip \
build-base \
git \
openssh-client \
&& pip install virtualenv \
&& rm -rf /var/cache/apk/*
COPY package.json package.json
COPY src src
COPY .babelrc .babelrc
RUN npm install
RUN npm run gitlab-build
RUN ls
EXPOSE 8080
CMD ["npm", "run", "docker-start"]
推荐阅读
- r - 摆脱带有部分字符串的行
- c# - 从 ASP.NET Core 中 ActionExecutionContext 的 HttpContext 获取 RawBody
- android-fragments - 如何销毁使用 fragmentstateadapter (viewpager2) 创建的片段
- javascript - 如何在 puppeteer 的评估功能中评估从父页面的 url 检索到的页面
- php - Laravel 事件调度断言失败
- u-sql - U-SQL 根据 3 个唯一列插入现有文件中不存在的数据
- swift - 在ios中的mapbox导航期间执行发布请求
- python - 在 keras 中组合多个 RNN
- node.js - 使用 puppeteer + ffmpeg 从网站录制视频
- mysql - 具有 30M 行的表中的 COUNT(*) 和 GROUP BY