首页 文章

使用docker进行gitlab-ci优化

提问于
浏览
-1

我有一个非常基本的asp.net核心mvc Web应用程序 .

我已经安装了一个gitlab-ci服务器,并且已将我的源文件和项目文件推送到存储库 .

我创建了这个.gitlab-ci.yml文件:

image: microsoft/dotnet:latest

stages:
  - build
  - test

build:
 stage: build
 script:
   - dotnet restore
   - dotnet build

test:
 stage: test
 script:
   - dotnet test Tests

我在gitlab服务器上设置了一个docker runner .

当我用git推送一些东西时,阶段构建和测试作业从gitlab-ci桩线开始 .

一切似乎都很好 .

我真的很想了解一切 .

这是我的问题:

首先,我可以在作业控制台中看到类似的内容:

Pulling docker image microsoft/dotnet:latest ...
Using docker image sha256:xxxxxx for microsoft/dotnet:latest ...
Running on runner-xxxxxx-concurrent-0 via myserver...
....
Fetching changes...
....
HEAD is now at xxxxxx test
Checking out xxxxxx as mybranch...
...
$ dotnet test Tests

跑步者首先创建一个docker容器 . 最后我们可以看到启动测试的dotnet命令 . 但在两者之间,我们可以看到作业是从我的存储库中获取源文件 . 这是逻辑,因为容器需要源文件 . 但是,正如您所看到的,我的.gitlab-ci.yml中没有任何内容可以下载源文件 . 这似乎很神奇?但我讨厌计算中的魔法!跑步者如何知道要下载哪个源文件,在哪个目录中?

第二个问题:在管道中创建了2个工作:一个用于构建,第二个用于测试 . 没有优化,第二个容器需要重新运行构建操作 . 有没有办法在单个docker容器中执行此操作(为了优化) .

第三个,也是最后一个问题:作业已成功运行,但是当我输入此命令时,我可以看到2个容器条目:

docker ps -a

我可以看到“退出(0)11小时前” . 为什么不自动删除这些容器?如果我运行了数百次测试,我的跑步计算机就会没有空间和内存!

谢谢

1 回答

相关问题