Skip to content

Add Web App with Custom Docker Image sample#78

Merged
paolosalvatori merged 7 commits intomainfrom
custom-image
May 8, 2026
Merged

Add Web App with Custom Docker Image sample#78
paolosalvatori merged 7 commits intomainfrom
custom-image

Conversation

@paolosalvatori
Copy link
Copy Markdown
Contributor

Motivation

This pull requests makes the overall architecture of the Web App with Custom Docker Image sample more complex and enterprise-ready.

Changes

This pull request introduces the following updates:

  • Extends or adds README.md files.
  • Adds a picture of the architecture design picture
  • Adds a Visio diagram
  • Adds a Bicep deployment
  • Adds a Terraform deployment

In addition, this pull request replaces https://azure.localstack.cloud/ references to the old URL of the emulator documentation with references to the new URL https://docs.localstack.cloud/azure/. NOTE: this change was not strictly necessary as all the accesses to the old URL are automatically redirected to the new URL.

Tests

The Azure CLI, Bicep, and Terraform deployments were successfully tested against Azure and LocalStack for Azure emulator. However, the Terraform deployment requires this #6979 to be merged in order to succeed.

Copilot AI review requested due to automatic review settings May 8, 2026 07:52
@paolosalvatori paolosalvatori requested a review from a team as a code owner May 8, 2026 07:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the repository’s Azure Web App sample set by adding an “Azure Web App with Custom Docker Image” sample (with richer, enterprise-style networking/observability) and updates many sample READMEs to point LocalStack for Azure docs to https://docs.localstack.cloud/azure/.

Changes:

  • Added a new web-app-custom-image sample with Azure CLI, Bicep, and Terraform deployment options (plus validation/call scripts and architecture docs).
  • Introduced reusable Terraform modules for the custom-image sample (ACR, VNet/subnets, NSGs, NAT gateway, private endpoint/DNS, Log Analytics, App Service Plan, Web App).
  • Updated many existing sample READMEs to reference the new LocalStack for Azure documentation URL.

Reviewed changes

Copilot reviewed 101 out of 104 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
samples/web-app-sql-database/python/terraform/README.md Update LocalStack for Azure documentation link.
samples/web-app-sql-database/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/web-app-sql-database/python/README.md Update LocalStack for Azure documentation link.
samples/web-app-sql-database/python/bicep/README.md Update LocalStack for Azure documentation link.
samples/web-app-managed-identity/python/terraform/README.md Update LocalStack for Azure documentation link.
samples/web-app-managed-identity/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/web-app-managed-identity/python/README.md Update LocalStack for Azure documentation link.
samples/web-app-managed-identity/python/bicep/README.md Update LocalStack for Azure documentation link.
samples/web-app-custom-image/python/terraform/variables.tf Define Terraform input variables for custom-image deployment.
samples/web-app-custom-image/python/terraform/terraform.tfvars Provide default Terraform variable values for the sample.
samples/web-app-custom-image/python/terraform/README.md Document Terraform-based deployment of the custom-image sample.
samples/web-app-custom-image/python/terraform/push_image.sh Script to build/tag/push container image to ACR for Terraform flow.
samples/web-app-custom-image/python/terraform/providers.tf Terraform provider configuration (azurerm + null).
samples/web-app-custom-image/python/terraform/outputs.tf Terraform outputs for deployed resources.
samples/web-app-custom-image/python/terraform/main.tf Root Terraform composition wiring modules/resources together.
samples/web-app-custom-image/python/terraform/deploy.sh Script to run terraform init/plan/apply and print resources.
samples/web-app-custom-image/python/terraform/modules/web_app/variables.tf Variables for the web app Terraform module.
samples/web-app-custom-image/python/terraform/modules/web_app/outputs.tf Outputs for the web app Terraform module.
samples/web-app-custom-image/python/terraform/modules/web_app/main.tf Web app Terraform module (linux_web_app + diagnostics + optional source control).
samples/web-app-custom-image/python/terraform/modules/virtual_network/variables.tf Variables for the virtual network Terraform module.
samples/web-app-custom-image/python/terraform/modules/virtual_network/outputs.tf Outputs for the virtual network Terraform module.
samples/web-app-custom-image/python/terraform/modules/virtual_network/main.tf Virtual network/subnets Terraform module + diagnostics.
samples/web-app-custom-image/python/terraform/modules/private_endpoint/variables.tf Variables for private endpoint Terraform module.
samples/web-app-custom-image/python/terraform/modules/private_endpoint/outputs.tf Outputs for private endpoint Terraform module.
samples/web-app-custom-image/python/terraform/modules/private_endpoint/main.tf Private endpoint Terraform module configuration.
samples/web-app-custom-image/python/terraform/modules/private_dns_zone/variables.tf Variables for private DNS zone Terraform module.
samples/web-app-custom-image/python/terraform/modules/private_dns_zone/outputs.tf Outputs for private DNS zone Terraform module.
samples/web-app-custom-image/python/terraform/modules/private_dns_zone/main.tf Private DNS zone + VNet link Terraform module.
samples/web-app-custom-image/python/terraform/modules/network_security_group/variables.tf Variables for NSG Terraform module.
samples/web-app-custom-image/python/terraform/modules/network_security_group/outputs.tf Outputs for NSG Terraform module.
samples/web-app-custom-image/python/terraform/modules/network_security_group/main.tf NSG rules + subnet association + diagnostics Terraform module.
samples/web-app-custom-image/python/terraform/modules/nat_gateway/variables.tf Variables for NAT gateway Terraform module.
samples/web-app-custom-image/python/terraform/modules/nat_gateway/output.tf Outputs for NAT gateway Terraform module.
samples/web-app-custom-image/python/terraform/modules/nat_gateway/main.tf NAT gateway + public IP prefix + subnet association Terraform module.
samples/web-app-custom-image/python/terraform/modules/managed_identity/variables.tf Variables for managed identity Terraform module.
samples/web-app-custom-image/python/terraform/modules/managed_identity/output.tf Outputs for managed identity Terraform module.
samples/web-app-custom-image/python/terraform/modules/managed_identity/main.tf User-assigned identity + AcrPull role assignment module.
samples/web-app-custom-image/python/terraform/modules/log_analytics/variables.tf Variables for Log Analytics Terraform module.
samples/web-app-custom-image/python/terraform/modules/log_analytics/output.tf Outputs for Log Analytics Terraform module.
samples/web-app-custom-image/python/terraform/modules/log_analytics/main.tf Log Analytics workspace Terraform module.
samples/web-app-custom-image/python/terraform/modules/container_registry/variables.tf Variables for container registry Terraform module.
samples/web-app-custom-image/python/terraform/modules/container_registry/output.tf Outputs for container registry Terraform module.
samples/web-app-custom-image/python/terraform/modules/container_registry/main.tf Container registry Terraform module + identity + diagnostics.
samples/web-app-custom-image/python/terraform/modules/app_service_plan/variables.tf Variables for App Service Plan Terraform module.
samples/web-app-custom-image/python/terraform/modules/app_service_plan/outputs.tf Outputs for App Service Plan Terraform module.
samples/web-app-custom-image/python/terraform/modules/app_service_plan/main.tf App Service Plan Terraform module + diagnostics.
samples/web-app-custom-image/python/src/app.py Adjust default IMAGE_NAME used in UI/status endpoint.
samples/web-app-custom-image/python/scripts/validate.sh Expand validation to check enterprise-style resources (VNet/NSG/PE/NAT/LA).
samples/web-app-custom-image/python/scripts/README.md Expand Azure CLI deployment documentation for the custom-image sample.
samples/web-app-custom-image/python/scripts/deploy.sh Expand Azure CLI provisioning script for enterprise-style architecture.
samples/web-app-custom-image/python/scripts/call-web-app.sh Align resource naming with updated RG/web app name conventions.
samples/web-app-custom-image/python/README.md Expand top-level sample documentation and architecture overview.
samples/web-app-custom-image/python/bicep/README.md Add Bicep deployment documentation for custom-image sample.
samples/web-app-custom-image/python/bicep/modules/web-app.bicep Add Bicep module for Web App (managed identity + diagnostics + optional source control).
samples/web-app-custom-image/python/bicep/modules/virtual-network.bicep Add Bicep module for VNet/subnets/NSGs/NAT + diagnostics.
samples/web-app-custom-image/python/bicep/modules/private-endpoint.bicep Add Bicep module for private endpoint + DNS zone group.
samples/web-app-custom-image/python/bicep/modules/private-dns-zone.bicep Add Bicep module for private DNS zone + VNet link.
samples/web-app-custom-image/python/bicep/modules/managed-identity.bicep Add Bicep module for user-assigned identity + AcrPull assignment.
samples/web-app-custom-image/python/bicep/modules/log-analytics.bicep Add Bicep module for Log Analytics workspace.
samples/web-app-custom-image/python/bicep/modules/container-registry.bicep Add Bicep module for ACR + diagnostics.
samples/web-app-custom-image/python/bicep/modules/app-service-plan.bicep Add Bicep module for App Service Plan + diagnostics.
samples/web-app-custom-image/python/bicep/main.bicepparam Add parameter file for main Bicep deployment.
samples/web-app-custom-image/python/bicep/main.bicep Add main Bicep composition deploying identity/network/dns/pe/plan/webapp.
samples/web-app-custom-image/python/bicep/deploy.sh Add deployment script orchestrating ACR + image push + remaining resources.
samples/web-app-custom-image/python/bicep/acr.bicepparam Add parameter file for ACR phase deployment.
samples/web-app-custom-image/python/bicep/acr.bicep Add Bicep template to deploy ACR + Log Analytics workspace.
samples/web-app-cosmosdb-nosql-api/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-nosql-api/python/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-mongodb-api/python/terraform/variables.tf Rename/align websites port variable naming.
samples/web-app-cosmosdb-mongodb-api/python/terraform/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-mongodb-api/python/terraform/modules/app_service_plan/main.tf Remove invalid/irrelevant diagnostic log category for App Service Plan.
samples/web-app-cosmosdb-mongodb-api/python/terraform/main.tf Remove unused local and align WEBSITES_PORT setting.
samples/web-app-cosmosdb-mongodb-api/python/scripts/validate.sh Align variable names for web app / subnet NSG identifiers.
samples/web-app-cosmosdb-mongodb-api/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-mongodb-api/python/scripts/deploy.sh Align variable names and WEBSITES_PORT setting.
samples/web-app-cosmosdb-mongodb-api/python/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-mongodb-api/python/bicep/README.md Update LocalStack for Azure documentation link.
samples/web-app-cosmosdb-mongodb-api/python/bicep/modules/web-app.bicep Align WEBSITE(S)_PORT app setting key.
samples/web-app-cosmosdb-mongodb-api/python/bicep/main.bicepparam Align default prefix value for sample deployment.
samples/web-app-cosmosdb-mongodb-api/python/bicep/main.bicep Factor private DNS zone name into a variable and reuse it.
samples/servicebus/java/terraform/README.md Update LocalStack for Azure documentation link.
samples/servicebus/java/scripts/README.md Update LocalStack for Azure documentation link.
samples/servicebus/java/README.md Update LocalStack for Azure documentation link.
samples/servicebus/java/bicep/README.md Update LocalStack for Azure documentation link.
samples/function-app-storage-http/dotnet/terraform/README.md Update LocalStack for Azure documentation link.
samples/function-app-storage-http/dotnet/scripts/README.md Update LocalStack for Azure documentation link.
samples/function-app-storage-http/dotnet/README.md Update LocalStack for Azure documentation link.
samples/function-app-storage-http/dotnet/bicep/README.md Update LocalStack for Azure documentation link.
samples/function-app-service-bus/dotnet/terraform/variables.tf Remove unused website_port variable.
samples/function-app-service-bus/dotnet/terraform/README.md Update LocalStack for Azure documentation link.
samples/function-app-service-bus/dotnet/scripts/README.md Update LocalStack for Azure documentation link.
samples/function-app-service-bus/dotnet/README.md Update LocalStack for Azure documentation link.
samples/function-app-service-bus/dotnet/bicep/README.md Update LocalStack for Azure documentation link.
samples/function-app-managed-identity/python/terraform/README.md Update LocalStack for Azure documentation link.
samples/function-app-managed-identity/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/function-app-managed-identity/python/README.md Update LocalStack for Azure documentation link.
samples/function-app-managed-identity/python/bicep/README.md Update LocalStack for Azure documentation link.
samples/aci-blob-storage/python/terraform/README.md Update LocalStack for Azure documentation link.
samples/aci-blob-storage/python/scripts/README.md Update LocalStack for Azure documentation link.
samples/aci-blob-storage/python/bicep/README.md Update LocalStack for Azure documentation link.
README.md Update repo-level LocalStack for Azure documentation link.
.gitignore Add Terraform working/state files to gitignore.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread samples/web-app-custom-image/python/README.md
Comment thread samples/web-app-custom-image/python/scripts/deploy.sh
Comment thread samples/web-app-custom-image/python/terraform/modules/web_app/main.tf Outdated
Comment thread samples/web-app-custom-image/python/terraform/variables.tf
Copy link
Copy Markdown
Contributor

@DrisDary DrisDary left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice Job @paolosalvatori 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants