Rake任务似乎不在Docker容器中写入文件
我试图在本地运行我的Rails应用程序作为平台迁移的一部分。 我在Docker Compose中使用Docker。
我遇到了rake assets:precompile
问题rake assets:precompile
。 它看起来好像docker工人在构build过程中删除生成的文件。
这是我的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
rake assets:precompile
和一切似乎都很好。 但是,如果我运行docker-compose run web ls -l /myapp/public/assets
之后, docker-compose up
build在不同的选项卡docker-compose up
运行,所有资产的文件都不见了。
这个容器在构build过程中不太可能被读取,那可能是什么呢?
您通过从本地文件夹装入的卷来隐藏容器文件夹/myapp
.
。
您需要确保所需的文件在您想要安装时位于本地文件夹内。 当您不安装该文件夹时,文件将在您的图像上可用。
其效果与Linux系统类似:当文件夹位于/my/folder
并且将磁盘安装到相同的文件夹时,隐藏原始文件。 相反,该磁盘中的文件是可见的。
- 如何在Docker容器中运行Docker主机?
- Docker:来自守护进程的错误响应:rpc错误:code = 2 desc =“oci运行时错误:exec格式错误”
- stream浪+docker错误
- 我们可以通过cmd行传递ENVvariables,同时通过dockerfile构build一个docker镜像吗?
- 使用Docker for Windows 8时遇到问题
- Docker容器不在boot2docker启动时运行
- 对于由docker-machinepipe理的boot2docker虚拟机,复制或scp文件到/ var / lib / boot2docker
- 如何通过docker机在Centos 6docker集装箱中使用kvm
- 如何使用主机MacOS机器连接到在Docker容器上运行的服务?