Deploying KeyDB with Volume: Permission Denied Issue

abdulrahman1sHOBBY

a year ago

Hello! I'm having trouble deploying keydb with a volume. It keeps giving me an error saying 'Permission denied /volume/path'. I tried setting RAILWAY_RUN_UID and checked the current user (which turned out to be root), but keydb still throws a permissions error. I also checked with ls -l / and confirmed that the volume exists. I even tried renaming it (changing volume path), but nothing worked. Can someone please help me fix this?

Dockerfile:

FROM eqalpha/keydb

COPY keydb.conf /etc/keydb/keydb.conf

EXPOSE 6379

CMD ["keydb-server", "/etc/keydb/keydb.conf", "--requirepass", "$KEYDB_PASSWORD"]

0 Replies

abdulrahman1sHOBBY

a year ago

e7e1e017-50e4-4446-a724-45add00a40d2


a year ago

what did you set RAILWAY_RUN_UID to?


abdulrahman1sHOBBY

a year ago

0


abdulrahman1sHOBBY

a year ago

I've spent an hour searching for a solution, checking KeyDB docs, their Docker build images, everything. I'm feeling pretty hopeless about it. If you can manage to solve this issue, it would be wonderful.


a year ago

where are you mounting the volume?


abdulrahman1sHOBBY

a year ago

/keydb_data


a year ago

send the conf file please


abdulrahman1sHOBBY

a year ago

port 6379
storage-provider flash /keydb_data
save ""
logfile ""
maxmemory 100mb
maxmemory-policy allkeys-random
maxclients 10
loglevel notice
always-show-logo no 

a year ago

are these things configurable via environment variables?


abdulrahman1sHOBBY

a year ago

I don't think so. keydb can be configured via a config file or parameters passed to its executable as stated by their docs.


a year ago

cool, will take a crack at this


a year ago

give this a try -


abdulrahman1sHOBBY

a year ago

I made a small adjustment to the start command by adding "--storage-provider flash /volume/path", and it worked perfectly. Thanks a lot! You're awesome! I'm not sure what mistake I made, though. If you have any insights on what went wrong so I can avoid it next time, that would be fantastic.


a year ago

why flash?


abdulrahman1sHOBBY

a year ago

I needed a cheaper alternative to Redis that still uses the Redis protocol. So, I discovered KeyDB on Flash, which saves on costs by limiting RAM usage and storing data on disk.


a year ago

oh so with flash no data ever gets saved into memory


abdulrahman1sHOBBY

a year ago

KeyDB still uses RAM for hot keys, but you can control how much it uses by using the 'maxmemory' option.


a year ago

what did you set the path for flash to?


abdulrahman1sHOBBY

a year ago

To the volume path


a year ago

/data?


abdulrahman1sHOBBY

a year ago

I've changed the path to something else. I don't quite remember the reason. 😅


a year ago

haha well please don't blame me if you lose data, i tested it as the template deploys and data did persist


abdulrahman1sHOBBY

a year ago

Will surly testing it before shipping to production. Thank you :D


a year ago

no problem!