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

Gitlab Pipeline构建doetnetcore应用程序的docker镜像并部署

厉文栋
2023-03-14

我在一台Ubuntu机器上安装了Gitlab。我在Gitlab中以ABC的名义拥有dotnetcore项目。

但是,在ABC存储库中有多个具有不同目录的小型doetnetcore应用程序,例如abc1 abc2 abc3 abc4。

我想在ABC下编写一个管道,在开发人员将代码推送到相应目录时创建docker映像。但这需要为那个唯一的目录创建docker镜像。

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

请帮我解决这个问题。提前感谢。。。!!!

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

  • docker
  • 构建

服务:

  • 码头工人:dind

前_脚本:-“echo$gitlab”

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

从mcr.microsoft.com/dotnet/aspnet:5.0作为基本工作 /app暴露80

ENV ASPNETCORE\u url=html" target="_blank">http://:80

来自mcr。微软com/dotnet/sdk:5.0编译时WORKDIR/src COPY[“dotnetcore.csproj”,“/”]运行dotnet restore“dotnetcore.csproj”COPY。WORKDIR“/src/”RUN dotnet build“dotnetcore.csproj”-c发行版-o/app/build

从构建AS发布运行dotnet发布"dotnetcore.csproj"-c发布-o /app/publish

作为最终工作目录 /app复制--from=发布 /app/publish. ENTRYPOINT["dotnet","dotnetcore.dll"]

在这个管道和dockerfile中,我只能构建“dotnetcore”项目。但我在同一回购协议下有dotnetcore1 doctnetcore2dotnetcore3项目。

共有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/**/*
 类似资料:
  • 我已经在一台乌班图机器上安装了Gitlab。我在Gitlab上有以ABC的名义的点网核心项目。 但是,在ABC repo中有多个不同目录的小doetnetcore应用程序,如abc1 abc2 abc3 abc4。 我想在ABC下编写一个管道,以便在开发人员在相应的目录中推送代码时创建docker映像。但这需要为该唯一的目录创建泊坞窗映像。 例如:开发人员将代码推送到abc3目录下,该时间管道运行

  • 本文向大家介绍Docker镜像构建原理解析(不装docker也能构建镜像),包括了Docker镜像构建原理解析(不装docker也能构建镜像)的使用技巧和注意事项,需要的朋友参考一下 在devops流程里面 构建镜像是一个非常重要的过程,一般构建镜像是写dockerfile文件然后通过docker client来构建的image。 docker client 会先检查本地有没有image,如果没有

  • 这是我编写的Dockerfile文件,但是构建镜像的时候发现没有执行npm install,自然也不会有dist文件,不知道是哪里写的有问题,请教一下大家

  • 本文向大家介绍Docker如何使用Dockerfile构建镜像,包括了Docker如何使用Dockerfile构建镜像的使用技巧和注意事项,需要的朋友参考一下 Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和

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

  • 我正在尝试构建一个安装了plv8扩展的PostgreSql 9.6 docker映像。下面是我的Dockerfile。 生成的图像大小为3.45 GB,而Docker hub的原始图像大小为235 MB。你知道为什么产生的图像尺寸这么大吗?如何缩小其尺寸?我试图使用此链接减小其大小,但不幸的是,docker导入/导出丢失了元数据。 更新: 我试图将所有RUN语句合并为一个语句。 新的大小是3.11