【发布时间】:2022-07-20 14:51:59
【问题描述】:
我在其中一台 Ubuntu 机器上安装了 Gitlab。并且我在 Gitlab 中有一个名为 ABC 的 dotnetcore 项目。
但是,在那个 ABC repo 中有多个小的 doetnetcore 应用程序,它们具有不同的不同目录,例如 abc1 abc2 abc3 abc4。
每当开发人员将代码推送到相应目录中时,我想在 ABC 下编写一个管道来创建 docker Image。但需要为该目录创建 docker Image。
eg: 开发者将代码推送到 abc3 目录下,此时管道运行并为 abc3 目录创建 docker Image。
请帮帮我。 提前谢谢...!!!
下面是我的管道,我也写过 Docker 文件: 阶段:
- 码头工人
- 构建
服务:
- docker:dind
之前的脚本: - “回声 $gitlab”
码头工人工作: 阶段:码头工人 图片:码头工人:dind 脚本: - docker login -u 用户名 -p 密码 $CI_REGISTRY - 码头工人构建 -t dotnetcore 。 #- 搬运工推送 $IMAGE_PUSH:latest 建造: 阶段:构建 标签: - 壳 图片:mcr.microsoft.com/dotnet/sdk 脚本: - 点网还原 - dotnet 构建
来自 mcr.microsoft.com/dotnet/aspnet:5.0 作为基础 工作目录 /app 曝光 80
ENV ASPNETCORE_URLS=http://+:80
来自 mcr.microsoft.com/dotnet/sdk:5.0 AS 构建 工作目录 /src 复制 ["dotnetcore.csproj","./"] 运行 dotnet 还原“dotnetcore.csproj” 复制 。 . 工作目录“/src/” 运行 dotnet build "dotnetcore.csproj" -c Release -o /app/build
FROM 构建 AS 发布 运行 dotnet publish "dotnetcore.csproj" -c Release -o /app/publish
FROM 基础 AS 最终 工作目录 /app 复制 --from=publish /app/publish 。 入口点 ["dotnet", "dotnetcore.dll"]
在这个管道和 dockerfile 中,我只能构建“dotnetcore”项目。但我在同一个 Repo 下有 dotnetcore1 doctnetcore2 dotnetcore3 项目。
【问题讨论】:
标签: docker .net-core gitlab gitlab-ci gitlab-pipelines