我们有一个基于 Python 的自定义 docker 镜像和 docker 文件,使用端口 5000 在容器内公开。此外,我们还在 Spoke 中创建了一个基于 Linux 容器的私有 Azure Webapp 服务,上面有生产和暂存槽。
我们正在寻找一种方法来直接将这个自定义创建的 docker 映像从服务器部署到 Azure Web 应用程序(Linux 容器)插槽,以便 创建每个 docker 镜像版本后,我们可以直接将镜像部署到此 Webapp slot,并且可以通过 https 端点 url 访问应用程序。
我们参考了MS文档来识别Web应用程序部署命令并传递docker镜像标签,但找不到任何az命令来实现此任务以将构建的docker镜像部署到appservice插槽
您在使用容器应用程序或应用程序服务时遇到问题吗?
要部署到 Azure 容器应用程序,我使用以下脚本:
# Step 6: Create a Container Apps environment
Write-Host "`nCreating a Container Apps environment named '${environmentName}'"
$containerEnv = az containerapp env create `
--name $environmentName `
--resource-group $rgname `
--location $location `
--logs-workspace-id $workspaceId `
--logs-workspace-key $workspaceKey `
--output json | ConvertFrom-Json
Write-Host "Container Apps Environment created"
# Step 7: Create Azure Container App for CloudDebugger
# Set DEPLOY_TRIGGER to a random value to force a redeployment
Write-Host "`nCreating Azure Container App for CloudDebugger"
$randomValue = [guid]::NewGuid().ToString()
$container = az containerapp create `
--name $containerAppName `
--environment $environmentName `
--resource-group $rgname `
--user-assigned $identityId `
--registry-identity $identityId `
--registry-server "${acrname}.azurecr.io" `
--image "${acrname}.azurecr.io/${imagename}:latest" `
--target-port 8080 `
--ingress external `
--cpu 0.25 `
--memory 0.5 `
--min-replicas 1 `
--max-replicas 1 `
--env-vars AZURE_CLIENT_ID=$clientId DEPLOY_TRIGGER=$randomValue `
--output json | ConvertFrom-Json
$containerId = $container.id
如果您在部署到应用服务时遇到问题,那么我在这里有一篇关于该问题的博客文章: 使用系统分配的标识将容器部署到 Azure 应用服务
我使用此命令来更新容器部署的地方:
$imagePath = "${acrname}.azurecr.io/${imagename}:latest"
Write-Host "`n`nChange the service to use the container ${imagePath}."
az webapp config container set `
--name $AppServiceName_container_linux `
--resource-group $rgname `
--container-image-name $imagePath `
--output json | ConvertFrom-Json