【发布时间】:2016-10-31 22:47:13
【问题描述】:
下面是项目根目录下的docker文件:-
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 文件中的内容:-
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 登录图像并查看工作目录时,看不到任何项目文件。
3) 我想知道的知识是:-
i) 当我启动终端时,我像“docker-machine start default”一样手动启动 VirtualBox 实例
ii)然后我执行命令“eval $(docker-machine env dev)”将当前shell指向virtualbox docker-daemon,所以之后我执行“docker build -t as_web”。终端给出类似“将当前构建上下文发送到 docker daemon”的消息,
a) 这条消息是说在 VirtualBox 中进行构建吗?
如果我执行“docker-compose build”,则不会出现“正在发送....”这样的消息,
B) docker-compose 是否也指向虚拟框中的 docker 守护进程,或者它正在 localhost(myubuntuOS) 中构建,我有点困惑?
如果您需要任何额外的信息,希望你们了解详细信息。然后告诉我,谢谢大家。快乐编码。
【问题讨论】:
标签: docker docker-compose dockerfile ruby-on-rails-4.2 docker-machine