我正在使用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使用图片,跳过
答案 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任务构建容器并将其推送到私有容器存储库。