当我运行时,会得到一个权限错误。
ng build --prod --env=prod在码头集装箱里。我想我正在处理所有的npm配置设置,并且安装很好。但是当我运行时,我会得到这样的错误:
EACCES: permission denied, unlink '/home/node/rbs/dist/0.0b84f6ea259174c0238a.chunk.js'
Error: EACCES: permission denied, unlink '/home/node/rbs/dist/0.0b84f6ea259174c0238a.chunk.js'
at Object.fs.unlinkSync (fs.js:1061:18)
at rimrafSync (/home/node/rbs/node_modules/fs-extra/lib/remove/rimraf.js:254:15)
at options.readdirSync.forEach.f (/home/node/rbs/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
at Array.forEach (<anonymous>)
at rmkidsSync (/home/node/rbs/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
at rmdirSync (/home/node/rbs/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
at Object.rimrafSync [as removeSync] (/home/node/rbs/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
at Class.run (/home/node/rbs/node_modules/@angular/cli/tasks/build.js:29:16)
at Class.run (/home/node/rbs/node_modules/@angular/cli/commands/build.js:250:40)
at resolve (/home/node/rbs/node_modules/@angular/cli/ember-cli/lib/models/command.js:261:20)
at new Promise (<anonymous>)
at Class.validateAndRun (/home/node/rbs/node_modules/@angular/cli/ember-cli/lib/models/command.js:240:12)
at Promise.resolve.then.then (/home/node/rbs/node_modules/@angular/cli/ember-cli/lib/cli/cli.js:140:24)
at <anonymous>下面是我的docker配置:
FROM node:8.11.3-alpine as build
RUN apk add --update python make
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=/home/node/.npm-global/bin:$PATH
USER node
RUN mkdir /home/node/rbs && \
npm install -g -f @angular/cli@1.7.4
##
## The section below is split to save cache time
#
# dependencies build only (only includes files for npm install)
#
RUN npm -g config set user root
ADD ./package.json /home/node/rbs
ADD ./package-lock.json /home/node/rbs
RUN cd /home/node/rbs && \
npm install
#
# Source build with ng (requires all sources)
#
ADD . /home/node/rbs
RUN cd /home/node/rbs && \
ng build --prod --env=prod
#
# Runtime; we will vend resources via nginx
#
FROM nginx:1.13.8-alpine
COPY --from=build /home/node/rbs/dist /usr/share/nginx/html
ADD ./container-files .发布于 2018-07-04 04:05:20
默认情况下,docker build将整个当前目录作为其“上下文”目录,然后当您的Dockerfile表示ADD . /home/node/rbs时,该目录将被添加到图像中。但是,如果您的工作树已经有了一个dist目录,那么这个目录也会被复制进来,并且ng build命令必须处理预先存在的内容。
您可以通过运行
rm -rf dist
docker build .一个更永久的修复方法是创建一个.dockerignore文件,告诉Docker在进行构建时不要包含dist目录。
echo /dist >> .dockerignore
docker build .如果dist目录已经存在,则ADD命令将添加根所拥有
所有新的文件和目录都是用UID和GID 0创建的,除非可选的--chown标志指定了其他的.
由于您已经告诉ng build作为备用NODE用户运行,它将无法删除根拥有的dist树,这将导致您看到的错误。
https://stackoverflow.com/questions/51164742
复制相似问题