About Custom Runtimes

If you'd like to use an alternative implementation of Java, Python, Node.js, or Go, or write code in any other language, custom runtimes are for you. Custom runtimes allow you to define new runtime environments, which might include additional components like language interpreters or application servers.

To create a custom runtime, you supply a Dockerfile with a base image of your choice, and add other docker commands as needed to build the desired runtime environment. Remember that you are responsible to ensure that the components you've included in your Dockerfile are compatible and are configured to deliver the desired performance.

When you use a custom runtime, you must write the application code to handle certain flexible environment life-cycle and health checking requests. Read about Building a Custom Runtime before you start developing.

Applications using custom runtimes can take advantage of many Cloud Platform services using the public REST APIs, or client libraries, when they are available.

The following table compares the two kinds of runtimes.

Feature Flexible runtime Custom runtime
Dockerfile Default file supplied automatically by the SDK Hand-written by the developer
Dockerfile modifications permitted Yes Yes
Languages Python, Java, Node.js, and Go Any software that can service HTTP requests

Send feedback about...

Custom runtimes for the App Engine flexible environment