【发布时间】:2015-08-07 08:25:00
【问题描述】:
作为平台迁移的一部分,我正在尝试在本地生产中运行我的 Rails 应用程序。我将 Docker 与 Docker Compose 一起使用。
我遇到了rake assets:precompile 的问题。看起来好像 docker 在构建过程中删除了生成的文件。
这是我的Dockerfile
FROM ruby:2.2.2
RUN apt-get update -qq && apt-get install -y build-essential nodejs npm nodejs-legacy mysql-client vim
RUN mkdir /lunchiatto
ENV RAILS_ENV production
ENV RACK_ENV production
WORKDIR /tmp
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
RUN bundle install --without production test
ADD . /myapp
WORKDIR /myapp
RUN bundle exec rake assets:clobber
RUN bundle exec rake assets:precompile --trace
这是我的docker-compose.yml
db:
image: postgres:9.4.1
ports:
- "5432:5432"
environment:
RACK_ENV: production
RAILS_ENV: production
web:
build: .
command: bundle exec puma -C config/puma.rb
ports:
- "3000:3000"
links:
- db
volumes:
- .:/myapp
environment:
RACK_ENV: production
RAILS_ENV: production
docker-compose build 命令运行良好。我还在rake assets:precompile 之前和之后将RUN ls -l /myapp/public/assets 插入到Dockerfile 中,一切似乎都很好。但是,如果我在构建后运行 docker-compose run web ls -l /myapp/public/assets 并在不同的选项卡中运行 docker-compose up,则所有资产的文件都消失了。
容器在构建期间不太可能是只读的,那会是什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 docker boot2docker docker-compose