Quickstart for Docker

This page explains how to use Cloud Build to build a Docker image and push the image to Container Registry. You will first build the image using a Dockerfile and then build the same image using the Cloud Build's build configuration file.

Before you begin

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the GCP Console, go to the Manage resources page and select or create a new project.

    Go to the Manage resources page

  3. Make sure that billing is enabled for your project.

    Learn how to enable billing

  4. Enable the Cloud Build API.

    Enable the API

  5. Install and initialize the Cloud SDK.

Log in to Google Cloud

  1. Authorize the gcloud command-line tool to access your project:

    gcloud auth login
    
  2. Configure your project for the gcloud tool, where [PROJECT_ID] is your GCP project ID that you created or selected in the previous section:

    gcloud config set project [PROJECT_ID]
    

Preparing source files

You'll need some sample source code to build. In this section, you'll create a simple Hello World example and a Dockerfile.

  1. Create a file named quickstart.sh with the following contents:

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
    
  2. Create a file named Dockerfile with the following contents:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
    
  3. Open a terminal window (if not already open).

  4. Run the following command to make quickstart.sh executable:

    chmod +x quickstart.sh
    

Build using Dockerfile

Cloud Build allows you to build a Docker image using a Dockerfile. You don't require a separate build config file.

Run the following command from the directory containing quickstart.sh and Dockerfile, where [PROJECT_ID] is your GCP project ID:

    gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .

After the build is complete, you will see an output similar to the following:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  9S    gs://[PROJECT_ID]_cloudbuild/source/1508159187.8-b0d8841d51674a30aebd1e55bb99486f.gz  gcr.io/[PROJECT_ID]/quickstart-image (+1 more)       SUCCESS

You've just built a Docker image named quickstart-image using a Dockerfile and pushed the image to Container Registry.

Build using a build config file

In this section you will use a build config file to build the same Docker image as above. The build config instructs Cloud Build to perform tasks based on your specifications.

  1. In the same directory that contains quickstart.sh and the Dockerfile, create a file named cloudbuild.yaml with the following contents. This file is your build config file. At build time, Cloud Build automatically replaces $PROJECT_ID with your project ID.

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
    images:
    - 'gcr.io/$PROJECT_ID/quickstart-image'
    
  2. Start the build by running the following command:

    gcloud builds submit --config cloudbuild.yaml .
    

When the build is complete, you will see an output similar to the following:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  8S    gs://[PROJECT_ID]_cloudbuild/source/1508158566.55-725755714baa4b7e9e99984c422ec4e2.gz  gcr.io/[PROJECT-ID]/quickstart-image (+1 more)       SUCCESS

You've just built quickstart-image using the build config file and pushed the image to Container Registry.

View the build details

  1. Open the Cloud Build page in the Google Cloud Platform Console.

    Open the Cloud Build page

  2. Select your project and click Open.

    You will see the Build history page:

    Screenshot of the build history page

  3. Click on a particular build.

    You will see the Build details page:

  4. Click on the image.

    Screenshot of the image link

    You will see the image details in the Container Registry page.

Optional: Run the Docker image

To verify that the image you built works as expected, you can run it using Docker.

  1. Install Docker.

  2. Configure Docker to use your Container Registry credentials when interacting with Container Registry (you are only required to do this once):

    gcloud auth configure-docker
    

    You'll see a message similar to the following:

    The following settings will be added to your Docker config file 
    located at [/.docker/config.json]:
    
    {
      "credHelpers": {
        "gcr.io": "gcloud",
        "us.gcr.io": "gcloud",
        "eu.gcr.io": "gcloud",
        "asia.gcr.io": "gcloud",
        "staging-k8s.gcr.io": "gcloud",
        "marketplace.gcr.io": "gcloud"
      }
    }
    
    Do you want to continue (Y/n)?
    
  3. Type y and enter.

  4. Run the Docker image that you built before, where [PROJECT_ID] is your GCP project ID:

    docker run gcr.io/[PROJECT_ID]/quickstart-image
    

    You will see an output similar to the following:

    Hello, world! The time is Fri Feb  2 16:09:54 UTC 2018.
    

Clean up

To avoid incurring charges to your GCP account for the resources used in this quickstart:

  1. Open the Container Registry page in the Google Cloud Platform Console.

    Open the Container Registry page

  2. Select your project and click Open.

  3. Click quickstart-image.

  4. Select all the images and click Delete.

You have now deleted the images that you created as part of this quickstart.

That's it, you completed this quickstart!

What's next

Was this page helpful? Let us know how we did:

Send feedback about...

Cloud Build