Rails Active Storage в Docker - PullRequest
       11

Rails Active Storage в Docker

0 голосов
/ 03 ноября 2018

Я использую docker compose, который состоит из веб-работника, базы данных postgres и работника redis sidekiq. Я создал фоновое задание для обработки изображений после загрузки пользовательских изображений. ActiveStorage используется для хранения изображений. Обычно без докера, при локальной разработке изображения хранятся во временной папке хранения для имитации облачного хранилища. Я довольно новичок в Docker, поэтому я не уверен, как работает хранилище. Я считаю, что хранилище в Docker работает немного по-другому. Работник sidekiq выглядит нормально, похоже, он жалуется, что не может найти место для хранения изображений. Ниже приведена ошибка, которую я получаю от работника sidekiq.

WARN: Errno::ENOENT: No such file or directory @ rb_sysopen - /myapp/storage

А вот мой докер-compose.yml

version: '3'
services:
  setup:
    build: .
    depends_on:
      - postgres
    environment:
      - RAILS_ENV=development
    command: "bin/rails db:migrate"
  postgres:
    image: postgres:10-alpine
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=mysecurepass
      - POSTGRES_DB=myapp_development
      - PGDATA=/var/lib/postgresql/data
  postgres_data:
    image: postgres:10-alpine
    volumes:
      - /var/lib/postgresql/data
    command: /bin/true
  sidekiq:
    build: .
    environment:
      - REDIS_URL=redis://redis:6379
    depends_on:
      - redis
    command: "bin/bundle exec sidekiq -C config/sidekiq.yml"
  redis:
    image: redis:4-alpine
    ports:
      - "6379:6379"
  web:
    build: .
    depends_on:
      - redis
      - postgres
      - setup
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    environment:
      - REDIS_URL=redis://localhost:6379
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - postgres

1 Ответ

0 голосов
/ 08 ноября 2018

Возможно, вам нужно добавить myapp громкость для sidekiq, например:

  sidekiq:
    volumes:
      - .:/myapp
...