docker镜像中不存在预编译资产

时间:2016-02-15 21:47:21

标签: ruby-on-rails docker docker-compose

我正在尝试使用docker运行简单的Rails应用程序。

从数据容器' app'中获取的源代码。该应用程序'数据容器也由nginx用于服务器预编译资产和静态文件。

但是,在运行'捆绑exec rake资产后找不到预编译资产:预编译'。

我在Mac OS X上使用Docker和VirtualBox(Docker版本1.10.1,版本9e83765)。

搬运工-compose.yml

version: '2'
services:
  web:
    build: .
    command: bundle exec puma
    env_file: .env
    environment:
      - RACK_ENV=production
      - RAILS_ENV=production
    volumes_from:
      - app
    ports:
      - "3000:3000"
    links:
      - db

  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes_from:
      - app
    volumes:
      - /app/public:/usr/share/nginx/html:ro
      - /app/config/deploy/nginx.conf:/etc/nginx/conf.d/default.conf

  db:
    image: postgres
    env_file: .env
    volumes_from:
      - data

  app:
    image: busybox
    volumes:
      - /myapp/app:/app:rw
  data:
    image: busybox
    volumes:
      - /myapp/data:/var/lib/postgresql/data

Dockerfile

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

WORKDIR /app
ADD . /app

RUN gem install bundler && bundle install --jobs 20 --retry 5 --without development test && rake assets:precompile

VOLUME /app/public

我也试过没有' VOLUME / app / public'

请告知可能出现的问题。

感谢。

1 个答案:

答案 0 :(得分:1)

app.get('/redis', function(req, res) { return client.onAsync("connect").then(function(res) { console.log(res); res.end(); }); }); 期间的广告量为not mounted

从装有卷的容器中运行docker build任务后期构建。

此外,自Docker 1.9起,您不再需要"数据卷容器"。 Volumes可以自己存在。

rake assets:precompile