简体   繁体   English

无法运行映像,CMD [“npm”, “start”] 命令错误

[英]Can't run image, CMD [“npm”, “start”] command error

I just build app: docker build.我只是构建应用程序:docker 构建。 -t ang:l -唐:l

after try run it: docker run -d -p 83:80 ang:l尝试运行后: docker run -d -p 83:80 ang:l

and get error:并得到错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown. docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:345:启动容器进程导致“exec:\”npm\“:$PATH 中找不到可执行文件”:未知。

without this CMD ["npm", "start"] command all works, but I need server and bd.没有这个 CMD ["npm", "start"] 命令一切正常,但我需要服务器和 bd。

Dockerfile: Dockerfile:

 # Stage 0, based on Node.js FROM node:latest as node WORKDIR /app COPY package*.json./ COPY. . #RUN npm install ARG configuration=production RUN true && \ npm run build:client-and-server-bundles -- --configuration=$configuration \ && \ npm prune --production && \ true # Stage 1, based on Nginx FROM nginx:alpine COPY --from=node /app/dist /usr/src/app/ CMD ["npm", "start"]

package.json command: "start": "node dist/server", package.json 命令:“开始”:“节点分布/服务器”,

Also I tried use docker-compose.yml:我也尝试使用 docker-compose.yml:

 version: '3.4' services: app: container_name: ang image: ang:l build: context: . dockerfile: Dockerfile command: npm start ports: - '3000:3000' links: - mysql mysql: container_name: mysql image: mysql ports: - '3306:3306'

it's both variants don't work, help please, how to build it in docker这两种变体都不起作用,请帮助,如何在 docker 中构建它

The nginx docker image doesn't contain npm . nginx docker 图像不包含npm You'll need to use node:latest which contains npm .您需要使用node:latest ,其中包含npm

# Stage 1, based on Nginx
FROM node:latest
COPY --from=node /app/dist /usr/src/app/
CMD ["npm", "start"]

You could potentially use node:alpine to run the application.您可能会使用node:alpine来运行应用程序。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM