visual-studio - 如何从 docker-compose.ci.build.yml 文件构建和推送容器

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

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

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

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



但是,这会输出错误:

ci-build uses an image, skipping

最佳答案

我在最初构建它时遇到了许多问题。对我的修复包括将 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

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

供引用/启发——这是在自定义 Linux 构建服务器上工作,并从单个解决方案生成四个 Docker 镜像——两个 ASP.NET Core 应用程序和两个 .NET Core 应用程序。

关于visual-studio - 如何从 docker-compose.ci.build.yml 文件构建和推送容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695089/

相关文章:

visual-studio - appcenter-cli 无法安装(找不到命令)

docker - 多个 docker-compose 文件 - 打印结果,合并 docker-compose.yml

docker - 有没有办法杀死挂起 “stop”和 “kill”的docker容器?

php - 无法从 php 访问 localstack s3

elasticsearch - Elasticsearch对映射放置方法的错误请求

azure - 如何从本地Visual Studio环境连接到azure sql而不存储连接字符串?

visual-studio - 在构建时生成 Swagger json

visual-studio - "Docker build path not found"在 docker 支持 Visual Studio 项目

c++ - 使用 Visual Studio 调试器与不使用调试器运行可执行文件之间的差异

visual-studio - Visual Studio 错误 - 写入项目文件时出错。未注册类(class)