gpt4 book ai didi

ruby-on-rails - Dockerfile应该如何使用yarn运行默认的rails 6项目?

转载 作者:行者123 更新时间:2023-12-02 21:06:30 25 4
gpt4 key购买 nike

中断一年后,我尝试使用docker / docker-compose运行默认的Rails 6项目。

起初,我有 bundle 器问题。但这是用ENV BUNDLER_VERSION 2.0.1解决的

现在我遇到了 yarn 问题。您能否看一下以下配置并告诉我我做错了什么。谢谢!

Dockerfile

FROM ruby:2.6.3

RUN apt-get update -qq && apt-get install -y nodejs yarn postgresql-client

RUN mkdir -p /app
WORKDIR /app
COPY . /app

ENV BUNDLER_VERSION 2.0.1

RUN gem install bundler && bundle install --jobs 20 --retry 5
RUN yarn install

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

docker-compose.yml
FROM ruby:2.6.3
version: '3'
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db

这是 docker-compose build的输出
安装gem之后,我可以看到以下输出:
Removing intermediate container b74374c81e66
---> bbb8e3ba24d1
Step 8/10 : RUN yarn install
---> Running in 3343917857c7
Parsing scenario file install
ERROR: [Errno 2] No such file or directory: 'install'
ERROR: Service 'web' failed to build: The command '/bin/sh -c yarn install' returned a non-zero code: 1

编辑

如果我使用以下Dockerfile,它将起作用。但是我认为这不是最好的解决方案。
FROM ruby:2.6.3

RUN apt-get update -qq && apt-get install -y npm nodejs yarn postgresql-client

RUN mkdir -p /app
WORKDIR /app

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

COPY . /app

ENV BUNDLER_VERSION 2.0.1

RUN gem install bundler && bundle install --jobs 20 --retry 5
RUN yarn install

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

最佳答案

有时,如果在使用apt来安装yarn时在主机上安装了cmdtest,可能会导致过时的问题,请尝试执行以下操作:

RUN apt-get remove -y cmdtest && apt-get update -qq && apt-get install -y nodejs postgresql-client

然后使用脚本安装yrn:
curl -o- -L https://yarnpkg.com/install.sh | bash

当仍然无法正常工作时,请参阅此 commit

关于ruby-on-rails - Dockerfile应该如何使用yarn运行默认的rails 6项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57650087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com