【发布时间】:2023-01-04 21:51:22
【问题描述】:
我正在关注网络上无数关于构建用于测试角度的 docker 容器的文章。在所有示例中,我最终都会遇到此错误:
=> ERROR [6/6] RUN npm run build --omit=dev
0.7s
------
> [6/6] RUN npm run build --omit=dev:
#10 0.687
#10 0.687 > edi-tracker@0.0.0 build
#10 0.687 > ng build
#10 0.687
#10 0.695 sh: 1: ng: Permission denied
经过大量测试后,我发现问题是,ng 从未安装或添加到 PATH。 npm 命令工作正常,但是当 npm 交给 angular-cli 时,它会失败。但令人费解的是,似乎没有人遇到过这个错误。我的 Dockerfile 在下面。任何人都可以提出解决此 ng: Permission denied 错误的建议吗?
### STAGE 1: Build ###
FROM node:latest AS build
USER node
WORKDIR /usr/src/app
COPY --chown=node:node package.json package-lock.json ./
RUN npm install
COPY --chown=node:node . .
RUN npm run build --omit=dev
### STAGE 2: Run ###
FROM nginx:1.17.1-alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=build /usr/src/app/dist /usr/share/nginx/html
【问题讨论】:
-
在后者中你有“RUN npm run build --omit=dev”这是“ng build”的那一行吗?
-
你有一个
.dockerignore文件可以忽略node_modules吗?否则看起来它们会被第二个副本覆盖。