加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ruby-on-rails – 在rails docker容器中找不到rake-11.1.2

发布时间:2020-12-16 03:51:57 所属栏目:安全 来源:网络整理
导读:我正在运行两个码头集装箱.一个带有rails,一个带有Postgres db. 这是我的docker-compose文件: # Docs: https://docs.docker.com/compose/compose-file/version: '2'services: db: image: postgres environment: - POSTGRES_PASSWORD=xxx rails: build: . co

我正在运行两个码头集装箱.一个带有rails,一个带有Postgres db.
这是我的docker-compose文件:

# Docs: https://docs.docker.com/compose/compose-file/
version: '2'
services:
  db:
    image: postgres
    environment: 
      - POSTGRES_PASSWORD=xxx

  rails:
    build: .
    command: rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app
    ports:
      - "3000:3000"
    links:
      - db
    depends_on:
      - db

这里是rails app的Dockerfile:

FROM ruby:2.3

RUN apt-get update 
RUN apt-get install -y build-essential nodejs 

RUN mkdir -p /app
WORKDIR /app

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

COPY . ./

EXPOSE 3000

ENTRYPOINT ["bundle","exec"]

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

当我运行docker-compose时,一切正常,我可以通过docker-machine的ip地址连接到服务器.

当我尝试使用以下命令连接到容器时:

docker-compose run rails console

我收到此错误:

Could not find rake-11.1.2 in any of the sources
Run `bundle install` to install missing gems.

容器内的bundle install没有效果,所提到的gem肯定是安装好的.在其他堆栈溢出问题中提到我应该运行bin / spring stop.所以我跑了:

docker-compose run bin/spring stop

它返回:

Spring is not running

我仍然是ruby / rails和docker的新手.我希望有人可以帮助我!
提前致谢

PS:对Dockerfiles的评论表示赞赏!

最佳答案
似乎是一个迟到的回应,但无论如何我会回答.我的有根据的猜测是你的Gemfile.lock固定你的rake版本,这就是为什么它抱怨.如果您在没有像docker-compose.yml中那样定义的卷的情况下运行docker build,您很容易就会像这样结束.所以试试吧.

关于您的Dockerfile:如果您仅将其用于开发目的,那么这可能没问题.否则,您应该考虑使用其他用户运行它(使用useradd创建用户并相应地运行RUN任务等).您可能还想使用某些捆绑器功能,例如–path =< path>选项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读