2017-01-10 5 views
1

У меня проблема с скрепкой при использовании с рельсами в среде разработки докеров, Я выполнил все шаги на README, чтобы добавить изображение в существующую модель, все работает без ошибок, но изображение не загружается локально, даже я попытался загрузить на S3 напрямую, а в той же проблеме нет ошибок вообще, а изображение отсутствует, папки пусты?Скрепка на докере не загружает изображение?

мой код чист, я попробовал его из докера, и он работает, любые предложения?

, чтобы упомянуть, что я даже попробовал несущую волну, и он работает очень хорошо, но я действительно люблю использовать скрепку, я нахожу ее более легкой и мощной.

+0

Можете ли вы рассказать нам больше о вашей установке: Docker изображение, рубин версия, рельсы версии и т.д. ... Довольно сложно помочь, если вы не дадите нам никаких подсказок. –

+0

Спасибо за ответ, мое изображение Докера было рубином 2.3.1-slim, rails 5.0.1. , и на самом деле я нашел быстрое решение, изменив изображение докера на полный рубин 2.3.1, и это сделало трюк. Проблема заключалась в том, что в тонком изображении отсутствуют некоторые зависимости, которые требуется выполнить с помощью paperclip. Если у вас есть представление о том, что может быть настоящей проблемой, это будет очень полезно. –

+0

Я также использую ruby ​​slim и чтобы он работал, я добавил зависимости 'imagemagick' и' file'. Поскольку imagemagick использует команду файла внутри, чтобы определить тип mime. – Chris

ответ

1

Это мой Dockerfile

# Use the barebones version of Ruby 2.3. 
FROM ruby:2.3.1-slim 

# Optionally set a maintainer name to let people know who made this image. 
MAINTAINER Chris de Bruin <[email protected]> 

# Install dependencies: 
# - build-essential: To ensure certain gems can be compiled 
# - nodejs: Compile assets 
# - imagemagick: converting images 
# - file: needed by paperclip 
# - wkhtmltopdf: generating pdf from html 
# - libxml2: needed for nokogiri 
RUN apt-get update && apt-get install -qq -y --no-install-recommends \ 
     build-essential libmysqlclient-dev git-core imagemagick wkhtmltopdf \ 
     libxml2 libxml2-dev libxslt1-dev nodejs file 

# Set an environment variable to store where the app is installed to inside 
# of the Docker image. The name matches the project name out of convention only. 
ENV INSTALL_PATH /backend 
RUN mkdir -p $INSTALL_PATH 

# This sets the context of where commands will be ran in and is documented 
# on Docker's website extensively. 
WORKDIR $INSTALL_PATH 

# Ensure gems are cached and only get updated when they change. This will 
# drastically increase build times when your gems do not change. 
COPY Gemfile Gemfile 
COPY Gemfile.lock Gemfile.lock 

RUN bundle install 

# Copy in the application code from your work station at the current directory 
# over to the working directory. 
COPY . . 

# Ensure the static assets are exposed through a volume so that nginx can read 
# in these values later. 
VOLUME ["$INSTALL_PATH/public"] 

# The default command that gets ran will be to start the Puma server. 
CMD bundle exec puma -C config/puma.rb 

Таким образом, вы должны иметь свой собственный Dockerfile и использовать это в вашем docker-compose.yml

+0

спасибо Крису, это очень полезно;). –