首页 > 解决方案 > Docker/Angular/Nginx: "exec: \"npm\": $PATH 中找不到可执行文件":

问题描述

我有一个与 nginx 一起 dockerized 的 Angular 应用程序。我的码头文件:

FROM node:8.11.3 as node

WORKDIR /app

COPY package.json /app/

RUN npm install
COPY ./ /app/

ARG env=prod

RUN npm run build -- --prod --environment $env

FROM nginx:1.13

COPY --from=node /app/dist/ /usr/share/nginx/html

RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

EXPOSE 4200
CMD ["npm", "start"]

我构建了我的 docker 映像,但是当我启动 docker run 时,我收到以下错误消息:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown.

如果我从 Dockerfile (CMD ["npm","start"] 中删除最后一个命令,我可以运行我的 docker 映像 - 它可以工作。但我想我需要最后一个命令,以便我可以在 AWS 中部署和运行我的应用程序。还有'CMD npm start' 不起作用。

我看过一些关于类似问题的帖子,但没有一个解决方案对我有用。

更新:

我删除了最后一行 - CMD npm start。ECS 现在正试图开始我的任务 - 但它以退出代码 1 停止并且没有进一步的评论。任何想法?

谢谢,迈克尔

标签: angulardockernginx

解决方案


泊坞窗图像nginx不包含. npm您需要使用node:latestor node:alpinewhich contains npm


推荐阅读