如何建立&从docker-compose.ci.build.yml文件中推送容器

时间:2017-08-15 14:33:42

标签: visual-studio docker asp.net-core docker-compose dockerfile

我正在使用ASP.NET Core并使用Visual Studio的Add Docker Support功能开始使用。这会在我的项目中添加docker-compose.ci.build.yml文件,该文件应该在CI服务器上使用。

如何从撰写文件构建Docker镜像并将图像推送到我的私有Docker注册表。我试过了docker-compose build命令:

  

docker-compose -f docker-compose.ci.build.yml build

然而,这会输出错误:

  

ci-build使用图片,跳过

2 个答案:

答案 0 :(得分:3)

我最初遇到了很多问题。对我的修复包括将Visual Studio 2017更新到Update 4,更新Visual Studio Tools for Docker扩展,以及更新/合并NuGet包引用。此外,在docker-compose.ci.build.yml中,我必须将构建图像更改为microsoft/aspnetcore-build:1.0-2.0-stretch(有关详细信息,请参阅this GitHub issue)。

假设docker-compose配置与默认生成的配置相同/相似,请尝试以下脚本:

$ docker-compose -f docker-compose.ci.build.yml up
$ docker-compose -f docker-compose.yml build

引出“up”docker-compose.ci.build.yml只是构建项目然后退出。工件发布到obj/Docker/publish文件夹。 “build”docker-compose.yml实际上使用obj/Docker/publish文件夹中的工件构建和标记图像。我使用以下内容清理构建脚本的末尾:

$ docker-compose -f docker-compose.ci.build.yml down

供参考/灵感 - 这是在定制的Linux构建服务器上工作,并从单个解决方案生成四个Docker镜像 - 两个ASP.NET核心应用程序和两个.NET核心应用程序。

答案 1 :(得分:0)

我设法在没有docker-compose.ci.build.yml的情况下构建了docker容器。我使用.Net Core任务来构建和发布.Net Core应用程序到" obj / Docker / publish" dockerfile期望文件夹,然后使用docker-compose任务构建容器并将其推送到私有容器存储库。