docker问题导轨资产预编译boot2docker
我试图让我的容器(在boot2docker上运行)正确的资产编译。
我目前有一个泊坞窗图像数据库和Web应用程序容器。 我不知道为什么预编译的资产在成功构build后没有显示。
我的Dockerfile看起来像这样:
FROM ruby:2.2.0 RUN apt-get update -qq && apt-get install -y build-essential # Postgres support RUN apt-get install -y libpq-dev # Nokogiri support RUN apt-get install -y libxml2-dev libxslt1-dev # JS runtime RUN apt-get install -y nodejs ENV APP_HOME /app RUN mkdir $APP_HOME RUN mkdir $APP_HOME/tmp RUN mkdir $APP_HOME/log # Copy the Gemfile and Gemfile.lock into the image. # Temporarily set the working directory to where they are. WORKDIR /tmp ADD Gemfile Gemfile ADD Gemfile.lock Gemfile.lock # Install ruby dependencies RUN bundle install # Add app to container ADD . $APP_HOME # Add container working directory WORKDIR $APP_HOME # Expose puma port EXPOSE 3000 # Expose the assets directory VOLUME /app/public # Precompile js/scss assets RUN bundle exec rake assets:precompile # Run puma server CMD bundle exec puma -C /app/puma.rb
泊坞窗,compose.yml
db: image: postgres web: build: . volumes: - .:/app - /mnt/docker/app/public:/app/public links: - db environment: VIRTUAL_HOST: app.dev
当我检查/mnt/docker/app/public
没有什么:(。
您正在预编译您的Dockerfile中的资源,然而,随后将您的卷装入您的撰写文件中。 从撰写文件中删除- /mnt/docker/app/public:/app/public
,然后重新启动容器。
如果你想看看/ app / public中的内容,那就去做吧
docker run -it --volumes-from=<APP_CONTAINER_NAME> <IMAGE> ls /app/public
或类似的东西。
感谢迈克尔的帮助,我也必须改变命令的顺序。
在制作目录之前,我必须先进行资源编辑。
所以,像这样改变了:
... # Add container working directory WORKDIR $APP_HOME # Expose puma port EXPOSE 3000 # Precompile js/scss assets RUN bundle exec rake assets:precompile # Expose the assets directory VOLUME /app/public # Run puma server CMD bundle exec puma -C /app/puma.rb
这是预期的行为?
- 使用docker-compose构build容器,但稍后使用-it选项运行/ etc / bash?
- Docker可以帮助构build在不同平台上工作的可执行文件
- Docker端口没有被覆盖
- vagrant:boot2docker:无法在本地查找图像“drupal”
- Dockerfile:将RUN指令输出到variables中
- 如何将Docker Machine连接到远程Docker VirtualBox
- boot2docker不在macOS Sierra中启动
- 在Fedora上使用设备映射器时,Docker会变慢吗?
- 如何使用docker-machine自定义virtualboxconfiguration?