Some history:
I first deployed my Rails 7.0 app in January, with Sqlite.
In July I manually did the migration to the V2 Platform.
In August the App started running out of memory and crashed, so I increased the system memory.
I’ve deployed the app succesfully having upgraded to Rails 7.0.7.2
My Sqlite database is mounted in fly.tom like so:
[[mounts]]
source = "recipe_data"
destination = "/mnt/recipe_data"
About a week ago I added Litestack to the Rails app. The App deployed to fly.
Failing to redeploy app
Today I’ve upgraded the app to Rails 7.1.2 and everything works locally. When I run fly deploy I get the follwoing error.
“Error: timeout reached waiting for health checks to pass for machine 148…”
And a WARNING The app is not listening on the expected address
Running fly machine status 148.....
and fly doctor
are all good.
I’ve added bundle add dockerfile-rails
to the project and generated a new Dockerfile.
When I try to deploy with the new Dockerfile it fails with:
Errno::EACCES: Permission denied @ dir_s_mkdir - /mnt/recipe_data
When I try giving permissions to /mnt/recipe_data in the Dockerfile build process, I get an error that the file doesn’t exist.
Lastly I tried updating fly.toml, all to no avail
[[mounts]]
source = "recipe_data"
destination = "/data"
The article by Brad Gessler Sqlite & Rails in Production · The Ruby Dispatch suggests states that fly adds this volume configuration to the fly.toml
file.
[[mounts]]
source = "data"
destination = "/data"
However, I had already have my Sqlite databse at /mnt/recipe_data
Help: How can I deploy the Rails 7.1.2 version. How do I have to update the Dockerfile to keep using my exisiting Database?