Regardless of using a default flexible runtime or a custom one you always need an
app.yaml for every service in your app. The difference is in the content of the
app.yaml file (apart from the Dockerfile needed for custom runtimes). From Building Custom Runtimes:
To create a custom runtime you need:
- An app.yaml file that describes your application's runtime configuration.
- A Dockerfile that configures the runtime environment. In many cases, this can be just one line specifying a base image.
Create an app.yaml file
You must use an
app.yaml configuration file with the following
Create a Dockerfile
The Dockerfile is always named
Dockerfile and should be placed in
the same directory with the corresponding
The actual content of a service's dockerfile depends on what the service is supposed to do. Theoretically the Dockerfiles contents could even be identical - there is no risk of collisions since they must be located in different directories (since their name is fixed). This is in line with the recommended dir structure of a multi-service/module app (the image is now gone, but it was captured in this older SO post)