angular - 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 停止并且没有进一步的评论。任何想法?
谢谢,迈克尔
解决方案
泊坞窗图像nginx
不包含. npm
您需要使用node:latest
or node:alpine
which contains npm
。
推荐阅读
- android - 需要解释从适配器发送数据到片段
- angular - Angular 7:分页无法正常工作
- javascript - 如果取消警报,如何使 javascript 部分重复?
- python - 如何使用选择器来定位除第一个之外的所有目标
- security - 如何设置从 Access .accdb 文件到具有用户级安全性的 mdb 文件的链接?
- r - 如何在 SageMaker Notebook 实例上安装 R 包?
- laravel - 如何从同事那里合并 laravel 项目 git
- css - 高度:自动不适用于当前的 CSS
- sql-server - 如何防止池连接中的事务隔离级别泄漏?
- java - DateFormatter 错误地打印了日期(Java)