Notice: Over the next few months, we're reorganizing the App Engine documentation site to make it easier to find content and better align with the rest of Google Cloud products. The same content will be available, but the navigation will now match the rest of the Cloud products. If you have feedback or questions as you navigate the site, click Send Feedback.

About Custom runtimes

Stay organized with collections Save and categorize content based on your preferences.

If you'd like to use an alternative implementation of Python, Java, Node.js, Go, Ruby, PHP, .NET or you write code in any other language, then 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 create a Dockerfile with a base image of your choice, and then add the docker commands that build your desired runtime environment. It's important to remember that you are responsible for ensuring that the components that you specified in your Dockerfile are compatible and configured to deliver the desired performance.

When you use a custom runtime, you must write your application code to handle certain flexible environment life-cycle and health checking requests. Start by reading about how to build a custom runtime before you begin developing your application.

Applications that use custom runtimes take advantage of all the various Google Cloud services by using the public REST APIs or client libraries, such as the App Engine Admin API and the Google Client Libraries.

Use the following table to understand how a custom runtime compares to the existing set of App Engine 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, Go, Ruby, PHP, .NET Any software that can service HTTP requests