Hey Ingo, The Flexible Environment (from this point forward, "Flex") is a kind of bridge between App Engine and Compute Engine. Flex apps run within a Docker container on a Compute Engine instance or pool of instances, and requests to the app via appspot.com are load-balanced to go to any one of these instances (depending on your scaling settings, the pool's size and growth behaviour will be dependent).
Basically, our SDK (gcloud <https://cloud.google.com/sdk/gcloud/>) allows you to specificy either "vm: true" (in the case of "runtime: go/python27/java/php55/etc.") or "runtime: custom <https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#general>" in your app.yaml or appengine-web.xml (for java) config file. In the case of "vm: true", your traditional App Engine app will be deployed using a special compatibility runtime to a Flex environment, and in the case of "runtime: custom", the Dockerfile in your app's root directory will be used to build the image of the resulting container which is deployed to the Flex Environment (you would need to specify the base image using the Dockerfile FROM directive, and ensure a web server process is started and listening on the appropriate port). So, your Flex app is already running on Compute Engine. Therefore, you could use "runtime: custom", along with the appropriate go compatibility base image <https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build#base_images>, and simply specify the install / configuration instructions for statsd in your Dockerfile. Each instance of your application would have an installed and running copy of statsd, in that case. Although you may also want to simply deploy a Compute Engine instance running statsd which is reachable via its internal network IP from your app runtime instances, since that appears to be more in line with how statsd is meant to be deployed, as a standalone service within your network. Does this help answer your questions? Let me know if anything is unclear or remaining to be discussed. Cheers! Nick Cloud Platform Community Support On Tuesday, May 10, 2016 at 10:55:27 PM UTC-4, ingo wrote: > > I built a small Golang app <https://github.com/ingojaeckel/weather-wear> > and deployed it to GAE's Flexible Environment. Right now this will create a > single Golang Docker container remotely at deploy time. For simple projects > similar to this one what is the best practice to add more dependencies that > run alongside the app (like statsd)? I want to continue to run my app in a > container on GAE. But I want to run publicly hosted Docker images alongside > it (e.g. this one <https://hub.docker.com/r/datadog/docker-dd-agent/>). I > am looking for a way to run those multi-Docker instances still within GAE > to take advantage of high level of abstraction. And if possible I want to > avoid having to integrate with a Docker Registry. > > > Is this feasible on GAE or do I have to switch over to Google Compute > Engine <https://cloud.google.com/compute/docs/containers/container_vms> > or Google Container Engine <https://cloud.google.com/container-engine/>? > > > Thanks! > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/a5f33606-c245-4186-8837-6200534513d8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
