我有一个构建一些工件的GitLab CI管道。例如:
deploy:app:
stage: deploy
image: ayufan/openshift-cli
before_script:
- oc login $OPENSHIFT_DOMAIN --token=$OPENSHIFT_TOKEN
script:
- oc start-build my_app
现在,我在GitLab管道中使用以下步骤将存储库部署到OpenShift。这会将我的GitLab存储库拉到OpenShift中。它不包括“测试”中的工件。
pidof dockerd containerd containerd-shim | tr ' ' '\n' \
| xargs -L1 -I{} -- sudo xargs -a '/proc/{}/environ' -L1 -0
如何让OpenShift使用此存储库以及在管道中创建的工件?
答案 0 :(得分:0)
通常,OpenShift build pipelines依靠s2i构建过程来构建应用程序。
在s2i构建之间重用工件的最佳实践是通过使用incremental builds或通过{{1}将多个BuildConfig定义(将一个BuildConfig的输出图像作为源图像馈送到另一个BuildConfig中)链接在一起。 }或BuildConfig definition中的spec.source.images
配置。
在您的情况下,由于您使用的是Jenkins管道来生成工件而不是OpenShift构建过程,因此您实际上只需要将工件与源代码和运行时容器映像结合起来。
要执行此操作,您可以创建一个构建器容器图像,该图像在s2i工作流程的assemble阶段(通过curl,wget等)从外部来源拉出这些工件。然后,您可以将BuildConfig配置为指向您的源存储库。在构建时,BuildConfig将拉下您的源代码,而汇编脚本将拉下您的工件。