首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >频繁获取bundler加载错误,但没有此类文件Gemfile错误

频繁获取bundler加载错误,但没有此类文件Gemfile错误
EN

Stack Overflow用户
提问于 2016-06-29 17:47:46
回答 1查看 303关注 0票数 0

以下是项目根目录中的docker文件:

代码语言:javascript
复制
FROM ruby:2.2
MAINTAINER technologies.com

RUN apt-get update -qq && apt-get install -y build-essential

RUN apt-get install -y libxml2-dev libxslt1-dev

RUN apt-get install -y libqt4-webkit libqt4-dev xvfb

RUN apt-get install -y nodejs

ENV INSTALL_PATH /as_app

RUN mkdir -p $INSTALL_PATH

WORKDIR $INSTALL_PATH

COPY Gemfile Gemfile

RUN bundle install

COPY . .

EXPOSE 3000

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

以下是项目根目录下docker-compose.yml文件的内容:-

代码语言:javascript
复制
as_web:
  build: .
  environment:
    - RAILS_ENV=development
    - QUEUE=*
    - REDIS_URL=redis://redis:6379
  volumes:
    - .:/as_app
  ports:
    - 3000:3000
  links:
    - as_mongo
    - as_redis
  command: rails server -b 0.0.0.0
as_mongo:
  image: mongo:latest
  ports:
    - "27017:27017"
as_redis:
  image: redis
  ports:
    - "6379:6379"
as_worker:
  build: .
  environment:
    - QUEUE=*
    - RAILS_ENV=development
    - REDIS_URL=redis://redis:6379
  volumes:
    - .:/as_app
  links:
    - as_mongo
    - as_redis
  command: bundle exec rake environment resque:work  

docker版本1.11.2,docker-machine版本0.8.0-rc1,docker-compose版本1.8.0-rc1,ruby 2.2.5,rails 4.2.4。

我的问题是:

1)当我在项目根目录下使用"docker-compose build“构建镜像时,镜像成功构建并安装了gem。

2)但是当我执行"docker-compose up“时,as_web和as_worker服务分别以代码1和10退出。出现错误,因为找不到gemfile或.bundler。当我通过bash登录image并看到工作目录时,看不到项目文件。

3)我想知道的知识是:-

i)当我启动终端时,我像"docker-machine start default“一样手动启动VirtualBox实例

ii)然后,我执行命令"eval $(docker-machine env dev)“将当前外壳指向virtualbox docker-daemon,因此在此之后,当我执行"docker build -t as_web”时。终端给出消息,如“发送当前构建上下文到docker守护进程”,

a)这条消息是不是说构建是在VirtualBox中完成的?

如果我做了"docker-compose build“,没有像”发送...“这样的消息。出现了,

B) docker-compose是指向虚拟机器中的docker守护进程,还是它是在本地主机(MyubuntuOS)中构建的,我有点困惑?

如果你们需要任何额外的信息,希望你们能理解细节。然后让我知道,感谢大家。祝你编码愉快。

EN

回答 1

Stack Overflow用户

发布于 2016-06-29 22:34:12

docker-compose builddocker build都做同样的事情。它们都使用docker engine API在virtualbox中构建镜像。输出消息只是稍有不同。

您的问题是由于以下原因:

代码语言:javascript
复制
 volumes:
- .:/as_app

您正在使用宿主中的项目目录覆盖app目录。如果您还没有在主机上运行bundle install,那么当它启动时,这些文件将不会在容器中。

您可以通过运行docker-compose run as_app bundle install来修复此问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38096005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档