Runway
<- the latest

How to containerize

Posted by: Till Klampaeckel
20 August 2024
🔥🔥🔥 — opinion

It’s been an exciting week for us with Runway — thank you to everyone who joined, deployed apps and gave us feedback. :) We appreciate you!

As I am updating the documentation, I wanted to elaborate a bit on containerization as I realize that we likely cannot always keep up with all the changes that frameworks and projects make on a daily, weekly or monthly basis.

So here are some pointers how to get the best out of Runway.

Containerize for Runway

To docker, or not to docker?

  1. You usually don’t need a Dockerfile to deploy something to Runway if you run on one of our supported stacks.
  2. When you don’t fall into the first category or you want to make significant changes to how your app runs and to how it is configured. We’ve got a lot of documentation on customising the buildpacks.

Logs

In order to use runway app logs or our UI, you need to write your logs to /dev/stdout or /dev/stderr. These get collected on our platform. We don’t run processes inside your containers. If your application writes to a file, then you should reconfigure it — or symlink the location to either of these.

All frameworks and logger abstractions offer a writer that’s capable of doing this for you. You don’t need to build your own.

Permissions

  1. Applications always run without root, take that into account, especially when you create your own Dockerfile.
  2. Applications run with a read-only filesystem, so avoid writing to it. For everything else, select one of the larger plans with persistence and point your application to the /data.