当前位置: 首页 > 知识库问答 >
问题:

Docker没有安装带有纱线的node_modules

鲜于德泽
2023-03-14

我正在运行一个Ruby on Rails应用程序,Webpacker使用Yarn,并试图通过Docker Compose在Docker上运行这个程序。当我运行docker compose build时,它看起来运行成功,但找不到node\u modules文件夹,我无法使用任何节点包。我试着像其他帖子中建议的那样,将-/app/node\u模块添加到卷中,但没有效果。

FROM ruby:3.0.0
RUN bundle config --global frozen 1

WORKDIR /app

COPY Gemfile Gemfile.lock ./
RUN bundle install


COPY . .

RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
RUN npm install --global yarn
RUN yarn install

docker-compose.yml

version: "3.9"
services:
  web:
    build: .
    ports:
      - "3000:3000"
    command: "rails server -b 0.0.0.0"
    volumes:
      - ./:/app
      - /app/node_modules
  db:
    image: "postgres:13"
    ports:
      - "5432:5432"
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password

共有1个答案

曾高杰
2023-03-14

从web服务中删除卷,或者只装载您真正需要的内容,而不是目录中的所有内容
如果您安装的是本地目录,那么它将覆盖容器中的所有内容。

一个好的做法是创建<代码>。dockerignore文件。把不应该从主机复制的东西放在那里,比如node\u模块

 类似资料:
  • 我已经通过运行以下命令在CentOS 7上安装了docker, 注意:helloworld运行正常,没有问题。 但是,当我尝试运行(docker-compose.yml存在且有效)时,它只给我CentOS上的错误(Windows版本适用于docker-composefile)

  • 我通过运行以下命令在CentOS 7上安装了docker, 注意:helloworld运行正常,没有问题。 但是,当我尝试运行(docker-compose.yml存在且有效)时,它仅在CentOS上给出错误(Windows版本适用于docker compose文件)

  • 我有一个从配置文件读取数据的Spark作业。此文件是一个类型安全配置文件。 我要使用的外部application.conf的内容如下所示: 此application.conf文件存在于我的本地计算机文件系统中(而不是HDFS上) 我用的是Spark1.6.1和纱线 提前致谢

  • 我正在运行Redhat 7.2,我试图安装最新的CURL来支持它上的HTTP2。 我手动安装了OpenSSL 1.0.2g。我安装了YUM的curl 7.48。我还安装了YUM的nghttp2 1.7.1。现在我无法让curl支持HTTP2。 curl--版本curl 7.48.0(x86_64-redhat-linux-gnu)libcurl/7.48.0 NSS/3.19.1基本ECC zli

  • 我正在运行到Windows路径字符限制。 例如,当我运行“gulp”的安装时,通过

  • 我刚下载了Android工作室。在尝试运行它时,我不得不修改环境变量并添加 JAVA_HOME 而且 C:\Progra~2\Java\JDK1.6.0_22 我还尝试了JAVA_HOME的这些路径,每次都关闭并重新打开一个新的CMD窗口