如何使用gitlab-ci进行操作?
我知道如何执行其中一项任务,但我不知道如何做到。
在我的想象中,我将需要多个基本图像。
也许我误会了孔的事。
通常应如何完成此过程?
向您提供四个帮助
答案 0 :(得分:0)
由于您的问题很笼统,我将举一个例子来回答。
考虑一个虚构的C ++项目,其中包含代码,一个 Makefile ,该文件创建可执行文件“ app”和此Dockerfile:
FROM ubuntu:16.04
ADD ./app /app
CMD ["/app"]
要按照您所说的那样构建应用程序和docker映像,可以使用如下的GitLab CI配置:
stages:
- test
- build
- docker
test:
stage: test
script:
- make test
build:
stage: build
script:
- make
artifacts:
paths:
- ./app
docker:
stage: docker
dependencies:
- build
script:
- docker build -t your-repo/image-name:latest .
- docker push your-repo/image-name:latest
此CI文件创建三个作业:“ test ”,“ build ”和“ docker ”。 “ test”运行“ make test”以执行我们的代码库可能具有的任何假想测试。如果成功,则GitLab运行程序将执行下一个工作“构建”。
“ build”通过调用“ make”来构建应用程序。我们希望 make 在当前目录中创建文件“ app”,这是我们在容器中运行的已编译应用程序。 “工件”部分指出,我们要保留此结果文件,因为我们在下一份工作中需要它。
下一个作业“ docker”具有“ dependencies”部分;在本节中,我们声明该作业取决于名为“ build”的作业的输出,该作业之前创建了文件“ app”。然后,我们首先使用 docker build 构建docker映像,然后像往常一样推送它。
如前所述,这些只是示例,尤其是 script 部分将根据您的项目和运行程序配置而有很大不同。有关所有可能性,请参见official CI documentation。