【问题标题】:Can't run image, CMD ["npm", "start"] command error无法运行镜像,CMD ["npm", "start"] 命令错误
【发布时间】:2020-02-15 18:31:57
【问题描述】:

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

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

并得到错误:

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

没有这个 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 命令: "start": "node 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 中构建它

【问题讨论】:

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


    【解决方案1】:

    nginx docker 映像不包含 npm。您需要使用包含npmnode:latest

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

    您可能会使用node:alpine 来运行应用程序。

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2020-12-18
      • 2021-09-11
      • 2021-01-25
      相关资源
      最近更新 更多