Visual Studio 2022 推送到自定义 docker 容器在更改图像名称后停止工作

问题描述 投票:0回答:1

我有一个 visual studio .pubxml 用于发布到带有 dockerfile 的自定义 docker 容器中。

运行良好,构建生成图像,然后推送正确完成。

问题是我需要修改镜像名称来推送,默认取项目名

<Project>
<PropertyGroup>
    <WebPublishMethod>Custom</WebPublishMethod>
    <DockerPublish>true</DockerPublish>
    <RegistryUrl>https://myUrl</RegistryUrl>
    <UserName>XXXXX</UserName>
    <PublishImageTag>latest</PublishImageTag>
    <PublishProvider>ContainerRegistry</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <_TargetId>DockerCustomContainerRegistry</_TargetId>
    <!--<DockerfileBuildArguments>-t NEWNAME</DockerfileBuildArguments>-->
    <DockerfileTag>NEWNAME</DockerfileTag>
</PropertyGroup>

这是我的 .pubxml,带有 DockerfileBuildArguments -t NEWNAME 或 DockerfileTag NEWNAME。生成的图像是正确的。但是当 visual studio 尝试进行推送时,仍在搜索旧的命名图像(现在未生成)

docker push PROJECTNAME:latest

但是我想让visual studio做

docker push NEWNAME:latest

我收到此错误,因为现在未生成带有 PROJECTNAME 的图像:

Microsoft.WebTools.Azure.Publish.Docker.DockerCommandException: Running the docker.exe tag command failed.
Error response from daemon: No such image: PROJECTNAME:latest

关于如何改变它的任何想法?

谢谢!

docker visual-studio publish pubxml
1个回答
0
投票

<DockerfileTag>NEWNAME</DockerfileTag>
需要进入项目文件而不是发布配置文件。

如果您确实只想在发布配置文件中指定 DockerfileTag,那么作为解决方法,您还可以添加:

<DockerfileBuildArguments>-t PROJECTNAME</DockerfileBuildArguments>

© www.soinside.com 2019 - 2024. All rights reserved.