I followed Sqlite3 on fly volumes tutorial and proactively enabled swap for demo rails app.
It turned out that, since the container is launched as root user when swap is on, fly mounts volumes for root too:
Mounting /dev/vdb at /mnt/volume w/ uid: 0, gid: 0 and chmod 0755
then entry-point script substitutes user for rails server command with rails user:
https://github.com/rubys/dockerfile-rails/blob/69f7631407735aa558bf99be46e0c0c988435479/lib/generators/templates/docker-entrypoint.erb#L18
rendering mounted volumes un-accessible for rails user.