我正在运行一个docker compose,它由一个web worker,一个postgres数据库和一个redis sidekiq worker组成。我创建了一个后台作业来处理上传用户图像后的图像。ActiveStorage用于存储图像。通常没有docker,在本地开发中,图像存储在临时存储文件夹中,以模拟云存储。我是Docker的新手,所以我不确定存储是如何工作的。我认为Docker中的存储工作方式有点不同。sidekiq工作人员看起来很好,它似乎只是在抱怨找不到一个地方来存储图像。下面是我从sidekiq工人那里得到的错误。
WARN: Errno::ENOENT: No such file or directory @ rb_sysopen - /myapp/storage
这是我的docker-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发布于 2018-11-08 08:33:07
也许您还需要为sidekiq添加myapp卷,如下所示:
sidekiq:
volumes:
- .:/myapphttps://stackoverflow.com/questions/53128739
复制相似问题