有没有办法将GitLab CI工件上传到Openshift容器?

时间:2019-03-28 15:02:46

标签: gitlab openshift gitlab-ci

我有一个构建一些工件的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使用此存储库以及在管道中创建的工件?

1 个答案:

答案 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将拉下您的源代码,而汇编脚本将拉下您的工件。