我想创建一个可以帮助我进行Angular CLI应用程序开发的docker映像。我不想在正在开发的机器上安装node或npm,我只想安装docker。我想运行一个docker image,这给了我一个bash终端,我可以在其中运行npm install
,ng g c MyNewComponent
,npm install New3rdPartyLib
和ng serve
等。
我取得了一些合理的进展。到目前为止,我已经有了dockerfile。
FROM ubuntu:19.10
WORKDIR /ui
RUN apt-get update -yq
RUN apt-get upgrade -yq
RUN apt-get install curl -yq
RUN curl --silent --location https://deb.nodesource.com/setup_13.x | bash -
RUN apt-get install nodejs -yq
RUN apt-get install git -yq
RUN npm install -g npm
RUN npm install -g @angular/cli
ENTRYPOINT /bin/bash
我将其构建为名为ag-dev-env
的图像并使用
docker run --rm -it -v $PWD:/ui -w /ui -p 4200:4200 -u root ag-dev-env /bin/bash
这很完美,我可以运行ng
命令和一些npm
命令
我的主要问题是我无法运行npm install
,因为目录权限存在某些问题。我收到以下错误。
npm WARN tar ENOENT: no such file or directory, open '/ui/node_modules/.staging/rxjs-b34353e6/operators/pluck.js.map'
和
npm ERR! Command failed: git clone --depth=1 -q -b fix-redirects git://github.com/timaschew/cogent.git /root/.npm/_cacache/tmp/git-clone-2b29f5f2
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-2b29f5f2': Permission denied
npm ERR!
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-12-23T14_36_16_225Z-debug.log
我做了很多谷歌搜索,却没有得到任何地方:(
答案 0 :(得分:0)
您需要为缓存配置其他路径。默认值为当前用户的主目录。您的情况是/root/.npm
npm config set cache /var/something --global
我建议您将缓存指向主机上的安装目录。