我一直试图通过使用这个Dockerfile来构建一个Docker映像:
FROM mhart/alpine-node:base-6
MAINTAINER techhadmin
COPY ./package.json src/
RUN cd src && npm install
COPY . /src
WORKDIR /src
EXPOSE 3000
CMD ["npm", "start"]但我收到了这个错误:
/bin/sh:国家预防机制:未找到 命令'/bin/sh -c cd src && npm‘返回一个非零代码: 127
知道我怎么解决这个问题吗?
发布于 2017-04-19 14:41:03
阅读文档:
https://hub.docker.com/r/mhart/alpine-node/
写的是:
如果您需要npm,请不要使用基本tagRUN npm安装。
所以不要使用base-6标记,并将FROM图像更改为类似于7的东西。
FROM mhart/alpine-node:7发布于 2018-12-15 19:37:47
您正在看到此错误消息,因为当您尝试运行npm install时,没有可用的npm副本。
您正在使用alpine作为基本映像。
默认情况下,alpine是一个小映像,因此它在其中有一组有限的默认程序。alpine映像中有哪些程序?不是很多。
因此,如果您试图使用Nodejs运行alpine映像,则需要执行其他工作。
要解决这个问题,您有两个选择:
alpine中安装npm的附加命令运行npm。利用别人的工作或从头开始建造它。
我建议在其中找到一个预先配置了npm的映像。您可以导航到DockerHub,这是一个图像存储库。
在DockerHub中有一个正式的节点存储库。
所以你可以这样做:
# Specify base image
FROM node:alpine
# Install some dependencies
RUN npm install
# Setup default command
CMD ["npm", "start"]关于node:alpine的好处是,您不会得到任何额外的不必要的包,只会得到Nodejs的绝对简化版本,除了ping命令、cat、ls等基础知识之外,什么也不会得到。
https://stackoverflow.com/questions/43497375
复制相似问题