TL;DR: Check out a working example project of how to deploy Docker containers (boxes) to Google Cloud Platform.
Delivering complex software solutions inside a neat container is exactly the promise of Docker, and Machine Box has truly benefited from this.
This article shows you how to spin up Machine Box in Google Cloud Platform, but the technique works for any Docker image you want to deploy.
You will need:
- Google Cloud SDK (the
- Your favourite text editor
- A terminal
1. Create an account and sign in
Head over to the Google Cloud Platform Console and sign into it. You’ll need a Google account to agree to some terms and conditions etc.
2. Create a project
In the project dropdown, select Create new project. For first time users, you will likely be guided to do this with a wizard.
Choose a project name and setup a billing account before clicking Create.
TIP: Keep a note of the project ID which might differ from the project name.
While your project is being setup, you can get the project ready for deployment.
3. Your project files
Create a folder on your development machine, ideally matching the name of the project you just created.
TIP: These files are expected to go into your source code repository, but follow best practices about storing secrets in there.
Create two text files called
The Dockerfile describes which image you want to add. In the simplest cast, just specify which image you want to generate:
In the case of Facebox, we also need to include the MB_KEY environment variable, which we can do in this file:
TIP: This is just a normal Dockerfile, so you can do whatever you need to here.
app.yaml file is where we will configure the deployment.
runtime: custom env: flex service: default threadsafe: yes
network: forwarded_ports: - 80:8080
automatic_scaling: min_num_instances: 1 max_num_instances: 10 cool_down_period_sec: 120 # default value cpu_utilization: target_utilization: 0.5
resources: cpu: 1 memory_gb: 2 disk_size_gb: 10
# volumes: # - name: ramdisk1 # volume_type: tmpfs # size_gb: 0.5
This file describes an autoscaling image (between 1 and 10 instances at a time) with a single CPU, 2GB of RAM and a 10GB disk, forwarding the Machine Box (container) port
80, so it’s accessible on the web.
TIP: You can dive a bit deeper on what you can do with the app.yaml file by checking out the official documentation.
Deploy your first version with the following command line in the terminal:
gcloud app deploy app.yaml -v v1
After a while, the image will be deployed and available.
5. Access your container
Head over to
https://your-project-id.appspot.com/ to access the image.
In our case, we see that the Facebox console is available: