首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法生成码头图像

无法生成码头图像
EN

Stack Overflow用户
提问于 2017-04-19 13:37:00
回答 2查看 493关注 0票数 0

我一直试图通过使用这个Dockerfile来构建一个Docker映像:

代码语言:javascript
复制
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

知道我怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-19 14:41:03

阅读文档:

https://hub.docker.com/r/mhart/alpine-node/

写的是:

如果您需要npm,请不要使用基本tagRUN npm安装。

所以不要使用base-6标记,并将FROM图像更改为类似于7的东西。

代码语言:javascript
复制
FROM mhart/alpine-node:7
票数 5
EN

Stack Overflow用户

发布于 2018-12-15 19:37:47

您正在看到此错误消息,因为当您尝试运行npm install时,没有可用的npm副本。

您正在使用alpine作为基本映像。

默认情况下,alpine是一个小映像,因此它在其中有一组有限的默认程序。alpine映像中有哪些程序?不是很多。

因此,如果您试图使用Nodejs运行alpine映像,则需要执行其他工作。

要解决这个问题,您有两个选择:

  1. 找一个不同的基本形象。-你可以尝试找到一个基本的形象,其中已经有节点和国家预防机制。
  2. 使用一些尝试在alpine中安装npm的附加命令运行npm

利用别人的工作或从头开始建造它。

我建议在其中找到一个预先配置了npm的映像。您可以导航到DockerHub,这是一个图像存储库。

在DockerHub中有一个正式的节点存储库。

/node

所以你可以这样做:

代码语言:javascript
复制
# Specify base image
FROM node:alpine

# Install some dependencies
RUN npm install

# Setup default command
CMD ["npm", "start"]

关于node:alpine的好处是,您不会得到任何额外的不必要的包,只会得到Nodejs的绝对简化版本,除了ping命令、catls等基础知识之外,什么也不会得到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43497375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档