当前位置: 首页 > 知识库问答 >
问题:

Gitlab Pipeline构建dotnetcore应用程序的docker映像并部署

漆雕奇
2023-03-14

我已经在一台乌班图机器上安装了Gitlab。我在Gitlab上有以ABC的名义的点网核心项目。

但是,在ABC repo中有多个不同目录的小doetnetcore应用程序,如abc1 abc2 abc3 abc4。

我想在ABC下编写一个管道,以便在开发人员在相应的目录中推送代码时创建docker映像。但这需要为该唯一的目录创建泊坞窗映像。

例如:开发人员将代码推送到abc3目录下,该时间管道运行并仅为abc3目录创建docker Image。

请帮帮我。提前致谢...!!!

以下是我的管道,我写了Docker文件:阶段:

  • 码头工人
  • 建造

服务业:

  • 码头工人:丁德

之前_脚本:- "echo $gitlab "

docker-作业:阶段:docker映像:docker:dind脚本:-docker登录-u用户名-p密码$CI_REGISTRY-docker build-t dotnetcore。#-docker推$IMAGE_PUSH:最新构建:阶段:构建标签:-shell映像:mcr.microsoft.com/dotnet/sdk脚本:-dotnet恢复-dotnet构建

从mcr.microsoft.com/dotnet/aspnet:5.0作为基础工作目录/应用程序公开80

ASPNETCORE_URLS

从mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /srcCOPY["dotnetcore.csproj ",". /"] RUN dotnet Recovery"dotnetcore.csproj"COPY. WORKDIR"/src/"RUN dotnet build"dotnetcore.csproj"-c Release-o /app/build

从 build as publish 运行 dotnet publish “dotnetcore.csproj” -c Release -o /app/publish

从基数作为最终的工作/应用程序副本 - 从=发布/应用程序/发布。ENTRYPOINT [“dotnet”,“dotnetcore.dll”]

在这个管道和泊坞文件中,我只能构建“dotnetcore”项目。但是我在同一个存储库下有点网核心1 doctnetcore2 dotnetcore3 项目。

共有2个答案

拓拔高畅
2023-03-14

假设您有少量目录。您可以为每个目录创建一个作业。使用具有更改的规则来检查是否在特定目录中进行了更改。

幸鸿轩
2023-03-14

gitlab ci有一个唯一的:更改功能。您可以定义多个作业,每个作业用于一个docker。

job-a:
  script: docker build a
  only:
    changes:
      - a/**/*
job-b:
  script: docker build b
  only:
    changes:
      - b/**/*
 类似资料:
  • 我在一台Ubuntu机器上安装了Gitlab。我在Gitlab中以ABC的名义拥有dotnetcore项目。 但是,在ABC存储库中有多个具有不同目录的小型doetnetcore应用程序,例如abc1 abc2 abc3 abc4。 我想在ABC下编写一个管道,在开发人员将代码推送到相应目录时创建docker映像。但这需要为那个唯一的目录创建docker镜像。 例如:开发人员将代码推送到abc3目

  • 我试图通过使用dockerfile-maven-plugin为我的spring boot maven项目构建一个docker映像。我在Windows7上使用Docker工具箱,运行良好。 我得到以下错误: pom.xml构建 我无法得到为什么我们需要谷歌默认凭据来建立一个本地图像。请帮助我,因为我是新的Docker世界。

  • 我正在构建docker图像,但得到以下错误 有关更多详细帮助,请运行"ng[命令名]--help"致命错误:堆限制附近无效的标记-压缩分配失败-JavaScript堆内存溢出 [16:0x558f56668dc0] 212695 ms:标记-扫描971.6 (995.9)- ====JS堆栈跟踪 ========================================= 安全上下文:0x1

  • 目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里 谷歌云构建的快速启动 我有一个Dockerfile现在很简单 我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个

  • 正如标题所示,我试图使用Docker为一个基于Kotlin的Micronaut应用程序构建一个本机映像。 我已将以下依赖项添加到文件中。 一切似乎都井然有序。映像启动并似乎接受连接,但当我启动http请求时,会出现以下错误。 有没有关于如何避免上述错误的线索?

  • 问题内容: 在创建新的ASP.NET Core MVC应用程序时,特别是在React / Redux(或其他需要Node.js的)模板上使用什么正确的Docker映像?如果不是特定的映像,对于由ASP.NET Core MVC支持的Node.js应用程序,应该在Dockerfile中遵循什么命令或过程? 除了运行支持MVC站点外,我不需要框架的SDK版本。 运行时映像未安装Node.js,在尝试运