【发布时间】:2019-06-16 07:24:22
【问题描述】:
我在dockers 上使用带有sidekiq 的官方redis 图片。
以下是ymlredis 图像的配置:
redis:
build: .
dockerfile: Dockerfile-redis
ports:
- '6379:6379'
volumes:
- 'redis:/var/lib/redis'
sidekiq:
build: .
command: bundle exec sidekiq
links:
- db
- redis
volumes:
- .:/app
env_file:
- .env
以下是我Dockerfile-redis的代码:
FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
当我构建图像时,一切正常,但一段时间后docker-compose logs 显示以下permission 错误:
redis_1 | 98:C 22 Jan 2019 18:40:10.098 # Failed opening the RDB file dump.rdb (in server root dir /var/lib/redis) for saving: Permission denied
redis_1 | 1:M 22 Jan 2019 18:40:10.203 # Background saving error
我尝试了很多解决方案,但我仍然在日志中收到此错误。每次redis打开dump.rdb文件的权限都被拒绝。我还关注了this 解决方案,并在我的Dockerfile-redis 中进行了以下更改,以将root 权限授予redis
USER root
CMD chown -R root:root /var/lib/redis/
CMD chown 777 /var/lib/redis/
CMD chown 777 /var/lib/redis/dump.rdb
我已经为dir 尝试过755,为dbfilename 尝试过644,但它对我不起作用。我还使用redis 用户尝试了Dockerfile-redis 的上述配置,但打开dump.rdb 文件时仍然遇到相同的permission denied 错误。
我不知道我在这里做错了什么。请帮我解决这个问题
【问题讨论】:
标签: ruby-on-rails redis docker-compose digital-ocean sidekiq