Spring Boot Azure DevOps Pipeline -是否可以替换存储在Azure容器注册表中的现有Docker容器中的文件?

3hvapo4f  于 5个月前  发布在  Spring
关注(0)|答案(1)|浏览(85)

是否可以从Azure部署管道(即yaml)对存储在Azure容器注册表中的容器进行更改(在我的情况下是替换文件)?
我目前有一个管道设置,使用从容器注册表中提取最新映像的Web App将Sping Boot 应用程序打包并部署为Docker容器。在我们当前的设置中,我们有一个application.properties文件,其中充满了在此部署过程中使用变量填充的令牌。(变量)在此文件中没有任何其他代码更改。在这种情况下,我们希望能够简单地替换文件并重新启动Web App,而不必再次通过完整的管道(包括构建,打包等)。

8oomwypt

8oomwypt1#

是否可以从Azure部署管道(即yaml)对存储在Azure容器注册表中的容器进行更改(在我的情况下是替换文件)?
是的,我们可以使用docker命令来拉取docker镜像并替换镜像中的文件。最后,我们可以将docker镜像(相同的标签)推回ACR。
在这种情况下,新版本的docker版本将使用相同的标签覆盖现有的docker镜像。
下面是一个例子:

steps:
- task: AzureCLI@2
  displayName: 'Azure CLI '
  inputs:
    azureSubscription: AzureSub
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
     az acr login --name containerregistryname
     docker pull containerregistryname.azurecr.io/reponame:sametag
     docker run --name foo  -d containerregistryname.azurecr.io/reponame:sametag
     docker ps -a
     docker cp filepath  foo:/pathinthecontainer
     docker exec foo ls  /pathinthecontainer
     docker commit foo containerregistryname.azurecr.io/reponame:sametag
     docker image ls
     docker push containerregistryname.azurecr.io/reponame:sametag

字符串
有关更多详细信息,请参阅文档:docker cp

相关问题