So, when you create a Blueprint, you actually define a list of Containers (Think rails, mysql, nginx, redis, etc from the airbnb example) that you'd like to start when you make an deployment. A container is synonymous to Docker Container.

Here's the basic form Overview

Basic Info: Container Name: Name of the Container. Example: name: Postgres

Image Setup: Doker image name: Docker Image name. Note that currently we only support gcr and docker hub naming scheme. Example: image: postgres Default tag: Default tag for the Docker image. Example: defualt tag: 9.5

Ports: Define what ports your application exposes. You can, if you want to, expose those ports to public too. Example: 5492: private

Health Check: If you want, you can define port and path of your app which will be used to determine if the app is ready to serve or not. This is useful when your app does some operations before they can serve requests (like running migrations, etc). Now, you can exactly know when your app is ready to serve. Example port: 80 path: /

Env Vars: Environment Variables you want your app to have when it runs. Note you can use Environment Variables Substitutionshere. Example: Say you want to use the postgres db, created as a separate container, here. Well, you can do that with ease. Here's how, PGHOST: ${DOCKUP_INTERNAL_HOSTNAME_postgres}. Now, when your app is deployed, it'll have the url of the postgres in the environment.

Command: Command you want your app to execute when the container is started. Example, command: /bin/bash argument: echo $HOME