我有一个 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
关于如何改变它的任何想法?
谢谢!
<DockerfileTag>NEWNAME</DockerfileTag>
需要进入项目文件而不是发布配置文件。
如果您确实只想在发布配置文件中指定 DockerfileTag,那么作为解决方法,您还可以添加:
<DockerfileBuildArguments>-t PROJECTNAME</DockerfileBuildArguments>