gpt4 book ai didi

ruby-on-rails - docker问题rails Assets 预编译boot2docker

转载 作者:行者123 更新时间:2023-12-02 19:12:26 25 4
gpt4 key购买 nike

我试图在我的容器上正确进行 Assets 编译(在boot2docker上运行)。

我目前有一个用于pg数据库和Web应用程序容器的docker镜像。我不知道为什么在成功构建后未显示预编译 Assets 。

我的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

docker-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中对 Assets 进行预编译,但是,然后将其卷与您的卷一起放置在compose文件中。从撰写文件中删除- /mnt/docker/app/public:/app/public,然后重新启动容器。

如果您想查看/ app / public中的内容,请执行

docker run -it --volumes-from=<APP_CONTAINER_NAME> <IMAGE> ls /app/public 

或类似的东西。

关于ruby-on-rails - docker问题rails Assets 预编译boot2docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com