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 |