无法运行镜像,CMD ["npm", "start"] 命令错误
Posted
技术标签:
【中文标题】无法运行镜像,CMD ["npm", "start"] 命令错误【英文标题】:Can't run image, CMD ["npm", "start"] command error 【发布时间】: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 中构建它
【问题讨论】:
【参考方案1】:nginx
docker 映像不包含 npm
。您需要使用包含npm
的node:latest
。
# Stage 1, based on Nginx
FROM node:latest
COPY --from=node /app/dist /usr/src/app/
CMD ["npm", "start"]
您可能会使用node:alpine
来运行应用程序。
【讨论】:
以上是关于无法运行镜像,CMD ["npm", "start"] 命令错误的主要内容,如果未能解决你的问题,请参考以下文章