如何通过Vuejs应用程序构建docker映像并通过GitLab CI / CD推送到Nexus存储库?

时间:2020-08-18 05:02:22

标签: docker vue.js gitlab gitlab-ci gitlab-ci-runner

我有需要构建的Vuejs应用程序才能作为Docker映像推送到Nexus。所有Vuejs内容都存储在GitLab存储库中。

这些阶段的管道很简单

  1. 设置(从管道中获取信息)
  2. 构建(npm install和npm run build)
  3. 创建docker映像(这将通过Vue应用程序执行docker构建)
  4. 将图片推送到Nexus

我将GitLab-runner与docker executor一起使用,并创建了Dockerfile,其中包含运行docker npm所需的软件包。

但是,通过所有这些步骤,我注意到gitlab ci将在每次新阶段开始时提取docker映像。因此,这将使我的工作流变成零碎,并且我无法从内置的Vuejs应用程序构建docker映像,也无法将映像推送到Nexus。

无论如何解决这个问题?谢谢

1 个答案:

答案 0 :(得分:1)

是的,这是真的-在Gitlab(例如Jenkins中)中,每个Job都运行着一个经过清理的新签出的存储库。生成的工件不会自动从一个作业转移到下一个作业。

这有时有时很难建立连接的管道,但这并非没有可能。

对于您的用例,建议将管道简化为两个步骤:

  1. 构建:设置和构建项目
  2. 发布:Docker构建并推送到Nexus

在完成 build 步骤之后,您可以使用Gitlab's Artifacts来传输build-output / build工件(可能是builddist文件夹? )或Dockerfile中第1步到第2步中需要的其他任何内容。

相关问题