预编译的资产在泊坞窗图像中不存在
我正在尝试使用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"