Docker 为什么我不能纠正问题,你拿着坏包

Docker 为什么我不能纠正问题,你拿着坏包,docker,ubuntu,Docker,Ubuntu,尝试运行Dockerfile,但在安装npm时失败 错误: Unable to correct problems, you have held broken packages. The command '/bin/sh -c apt-get install -y npm' returned a non-zero code: 100 Dockerfile: FROM ubuntu:14.04 MAINTAINER Giacomo Vacca "giacomo.vacca@gmail.com"

尝试运行Dockerfile,但在安装npm时失败

错误:

Unable to correct problems, you have held broken packages.
The command '/bin/sh -c apt-get install -y npm' returned a non-zero code: 100
Dockerfile:

FROM ubuntu:14.04

MAINTAINER Giacomo Vacca "giacomo.vacca@gmail.com"

ENV REFRESHED_AT 2015-01-19
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get autoremove
RUN npm -v

RUN apt-get update
RUN apt-get upgrade -y

RUN apt-get install --yes curl
RUN curl --silent --location http://deb.nodesource.com/setup_0.10 | sudo bash -
RUN apt-get install -y nodejs
RUN apt-get install --yes build-essential

RUN rm /usr/bin/node

# needs this to find the nodejs exec
RUN ln -s /usr/bin/nodejs /usr/bin/node

RUN apt-get install -y npm  <--- FAIL
RUN /usr/bin/npm install socket.io@0.9.14

EXPOSE 8080

ENTRYPOINT ["/usr/bin/node", "/root/server.js"]
来自ubuntu:14.04的

维护者Giacomo Vacca“Giacomo。vacca@gmail.com"
环境部于2015年1月19日更新
环境DEBIAN_前端非交互
运行自动删除
运行npm-v
运行apt获取更新
运行apt获取升级-y
运行apt get install--yes curl
运行curl--静默--位置http://deb.nodesource.com/setup_0.10 |sudo bash-
运行apt get install-y nodejs
运行apt get install——是构建必需
运行rm/usr/bin/node
#需要这个来查找nodejs exec
运行ln-s/usr/bin/nodejs/usr/bin/node

运行apt get install-y npm您不需要通过以下方式从ubuntu发行版安装npm:

RUN apt-get install -y npm
因为它已经由nodesource的nodejs包安装。您可以通过以下方式进行检查:

dpkg -L nodejs | grep "/usr/bin/npm"

我拿出那行代码,现在得到了/bin/sh:1:npm:notfound,我不得不将运行npm-v移到安装节点下面。移动那条线很有效。