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 additionalcomponents like language interpreters or application servers.
To create a custom runtime, you create a Dockerfile with a base image of yourchoice, and then add thedocker commands that build your desired runtimeenvironment. It's important to remember that you are responsible for ensuringthat the components that you specified in your Dockerfile are compatible andconfigured to deliver the desired performance.
When you use a custom runtime, you must write your application code to handlecertain flexible environment life-cycle and health checking requests. Start byreading about how tobuild a customruntime before you begindeveloping your application.
Applications that use custom runtimes take advantage of all the variousGoogle Cloud services by using the public REST APIs or client libraries,such as theApp Engine Admin API and theGoogle ClientLibraries.
Use the following table to understand how a custom runtime compares to theexisting 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 |
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-15 UTC.