Deploy crash when trying to work with docker volume

a year ago

I deployed new service via dropping docker compose file. It has configured volume. The volume is appeared but deploy script can't use it due to deploy because of permission denied. How can I fix it?

Logs:

Mounting volume on: /var/lib/containers/railwayapp/bind-mounts/dc4935a6-48c5-455f-8320-ddfce6ac0655/vol_zd1w91epls1sq6ax

Jul 05 17:43:53

Database not found. Initializing...

Jul 05 17:43:53

/usr/local/bin/docker-entrypoint.sh: line 14: can't create /app/data/.db.lock: Permission denied

Solved$20 Bounty

3 Replies

a year ago

This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.

Status changed to Open brody 12 months ago


patrikhorvatic
PRO

a year ago

You should check disk ownership and user permissions for modification.

docker exec -it <container_name> id

Make sure your volume has correct permissions, for example:

chmod 755

In your compose file make sure user is listed with your volumes:

`services:

your-service:

image: your-image

user: "1000:1000" # or whatever uid:gid your host uses

volumes:

  • ./data:/app/data`

Hope this helps


patrikhorvatic

You should check disk ownership and user permissions for modification. docker exec -it <container\_name> id Make sure your volume has correct permissions, for example: chmod 755 <path> In your compose file make sure user is listed with your volumes: `services: your-service: image: your-image user: "1000:1000" # or whatever uid:gid your host uses volumes: - ./data:/app/data` Hope this helps

a year ago

Am I able to run some commands to the hosted container on railway? Or you are talking about local development? in the local machine I have not met with this issue.


idiegea21
HOBBY

a year ago

Railway doesn't support running commands inside hosted containers, so you’ll need to fix permissions during build. Add this to your Dockerfile:

RUN chown -R 1000:1000 /app/data

And in your docker-compose.yml, set:

user: "1000:1000"

This ensures your app has write access to the volume when deployed.


Status changed to Solved vanyagpt 12 months ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...