Dockerfile返回在构建时找不到的npm

问题描述 投票:2回答:1

我是Docker的新手,想创建一个包含所有Ruby on Rails网站及其依赖关系的容器。我阅读了大量的文件和如何做到这一点,但我一直在努力。

由于我使用Rubymine,因此有一个内置工具允许您从您在其中创建的Dockerfile中对当前项目进行Docker化。但是,我一直有错误“npm not found,而NodeJS应该安装。

这是我的Dockerfile:

FROM ruby:2.4.3
MAINTAINER Jaeger
RUN apt-get update -qq && apt-get install -y build-essential nodejs

RUN mkdir -p /app
WORKDIR /app

COPY package.json /app
RUN npm i -g yarn && yarn

COPY Gemfile Gemfile.lock ./
RUN gem install bundler && bundle install --jobs 20 --retry 5
RUN yarn

COPY . ./

EXPOSE 3000

CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]

最终目标应该是,因为我在其中使用Webpacker和React(它是一个虚拟项目进行测试,但真正的网站有这个),我想安装Yarn,并让Yarn安装所有依赖项。

我发现其他一些人遇到了同样的问题但却试图理解Docker层概念而试图复制一些无效的代码

docker dockerfile
1个回答
7
投票

在运行npm install之前,需要在容器中显式安装node / npm。将其添加到Dockerfile。

RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get update && apt-get install -y nodejs
© www.soinside.com 2019 - 2024. All rights reserved.