Skip to main content

Azure App Service running Docker containers on Linux

Creates Azure App Service and Deploys Docker images to it

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set azure-go-appservice-docker
cd pulumi-examples/azure-go-appservice-docker

Starting point for building a web application hosted in Azure App Service from Docker images.

The example shows two scenarios:

  • Deploying an existing image from Docker Hub
  • Deploying a new custom registry in Azure Container Registry, building a custom Docker image, and running the image from the custom registry

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Go

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Log in to the Azure CLI (you will be prompted to do this during deployment if you forget this step):

    Terminal window
    az login
  3. Set the Azure region location to use:

    Terminal window
    pulumi config set azure-native:location westus2
  4. Install dependencies:

    Terminal window
    go mod download
  5. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Previewing changes:
    ...
    Performing changes:
    ...
    Resources:
    + 8 created
    Duration: 56s
  6. Check the deployed website endpoints:

    Terminal window
    pulumi stack output helloEndpoint
    curl "$(pulumi stack output helloEndpoint)"
    https://helloappecc2f992.azurewebsites.net
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    html { color-scheme: light dark; }
    body { width: 35em; margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif; }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    Terminal window
    pulumi stack output getStartedEndpoint
    curl "$(pulumi stack output getStartedEndpoint)"
    http://get-started-15da13.azurewebsites.net
    <html>
    <body>
    <h1>Your custom docker image is running in Azure App Service!</h1>
    </body>
    </html>

Cleaning up#

Once you are done, you can destroy all of the resources, and the stack:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.