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

时间:2019-10-18 18:20:36

标签: node.js angular docker npm docker-compose

  

我只是构建应用程序:docker build。 -t ang:l

     

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

     

并得到错误:

docker:来自守护程序的错误响应:OCI运行时创建失败:container_linux.go:345:启动容器进程导致“ exec:\“ npm \”:在$ PATH中找不到可执行文件”:未知。 strong>

没有此CMD [“ npm”,“ start”]命令都可以,但是我需要服务器和bd。

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命令:“开始”:“节点dist / server”,

我也尝试使用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'

这两种变体都无法使用,请帮忙,如何在docker中构建它

1 个答案:

答案 0 :(得分:3)

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

npm

您可能会使用# Stage 1, based on Nginx FROM node:latest COPY --from=node /app/dist /usr/src/app/ CMD ["npm", "start"] 来运行该应用程序。