Docker / Angular / Nginx:“ exec:\” npm \“:在$ PATH中找不到可执行文件”:

时间:2018-07-14 10:02:33

标签: angular docker nginx

我有一个我与nginx一起Docker化的角度应用程序。我的dockerfile:

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停止并且没有更多注释。有想法吗?

谢谢, 迈克尔

1 个答案:

答案 0 :(得分:2)

nginx泊坞镜映像不包含npm。您需要使用包含node:latest的{​​{1}}或node:alpine