Search code examples
pythongoogle-app-enginegoogle-app-engine-pythongae-modulemanaged-vm

Unable to find/modify the Dockerfile of a Google App Engine Managed VM that uses a standard runtime (python27)


I want to modify the Dockerfile of a Google App Engine managed VM that uses a standard runtime (python27).

I want to do this to add a C++ library that needs to be called to implement an HTTP request. This library is pretty much the only addition I need to the sandboxed python27 runtime.

The documentation makes it quite clear that this is possible:

Each standard runtime uses a default Dockerfile, which is supplied by the SDK. You can extend and enhance a standard runtime by adding new docker commands to this file.

Elsewhere they say that they Dockerfile of a standard runtime will be generated in the project directory:

When you use gcloud to run or deploy a managed VM application based on a standard runtime (in this case Python27), the SDK will create a minimal Dockerfile using the standard runtime as a base image. You'll find this Dockerfile in your project directory...

This is the one I am supposed to modify according to the same page:

Later steps in this tutorial will show you how to extend the capabilities of your runtime environment by adding instructions to the Dockerfile.

The problem is that when I do run my application on the dev server, I cannot find the Dockerfile anywhere, so I can't make any changes to it.

Has anyone managed to modify the standard runtime Dockerfile for Google App Engine? Any help would be appreciated.


Solution

  • It seems like the Dockerfile is generated only when using gcloud preview app run and not dev_appserver.py, which was what I was using.

    I am however not able to modify the Dockerfile and run a custom managed VM. But that is a seperate error (--custom_entrypoint related).

    This whole situation is a nightmare fueled by atrocious documentation and support. A warning for other developers considering Google App Engine.