预编译的资产在泊坞窗图像中不存在

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

源自数据容器“app”的源代码。 'app'数据容器也被nginx用于服务器预编译的资产和静态文件。

但是在运行“bundle exec rake assets:precompile”之后没有find预编译的资源。

我在使用VirtualBox的Mac OS X上使用docker(Docker version 1.10.1,build 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 /应用程序/公共”

请build议可能是什么问题。

谢谢。

docker build期间不会装入卷。

运行rake assets:precompile从装有卷的容器开始rake assets:precompile任务。

而且,由于Docker 1.9,您不再需要“数据容器”。 卷可以自己存在。

 $ docker volume create --name=app_public $ docker run -v app_public:/public busybox sh -c "echo hello > /public/file.txt" $ docker run -v app_public:/public busybox sh -c "cat /public/file.txt"