如何从 Vuejs 应用程序构建 docker 图像并通过 GitLab CI/CD 推送到 Nexus 存储库?
How to build docker image from Vuejs application and push to Nexus repository through GitLab CI/CD?
我有需要构建的 Vuejs 应用程序,以便作为 Docker image.All Vuejs 内容存储在 GitLab 存储库中推送到 Nexus。
这些阶段的流水线很简单
- 设置(从管道获取信息)
- 构建(npm 安装和 npm 运行 构建)
- create docker image(这将执行 docker 使用 Vue 应用程序构建)
- 将图像推送到 Nexus
我将 GitLab-运行ner 与 docker 执行器一起使用,我创建了 Docker 文件,其中包含 运行 npm 所需的包,docker.
然而,通过所有这些步骤,我注意到每次新阶段开始时,gitlab ci 都会拉取 docker 图像。所以它会将我的管道分成几块,我无法从构建的 Vuejs 应用程序构建 docker 图像,也无法将图像推送到 Nexus。
有办法解决这个问题吗?谢谢
是的,这是真的 - 在 Gitlab 中(不同于 Jenkins
),每个作业都使用一个干净的、新签出的存储库运行。生成的工件不会自动从一个作业转移到下一个作业。
这使得有时很难建立连接的管道,但这并非不可能。
对于您的 use-case,我建议将管道归结为两个步骤:
- 构建:设置和构建项目
- 发布:Docker构建并推送到 Nexus
在 build 步骤之后,您可以使用 Gitlab's Artifacts 传输 build-output / build-artifacts (可能是 build
或 dist
文件夹?)或您在 Dockerfile
从第 1 步到第 2 步中需要的任何其他内容。
我有需要构建的 Vuejs 应用程序,以便作为 Docker image.All Vuejs 内容存储在 GitLab 存储库中推送到 Nexus。
这些阶段的流水线很简单
- 设置(从管道获取信息)
- 构建(npm 安装和 npm 运行 构建)
- create docker image(这将执行 docker 使用 Vue 应用程序构建)
- 将图像推送到 Nexus
我将 GitLab-运行ner 与 docker 执行器一起使用,我创建了 Docker 文件,其中包含 运行 npm 所需的包,docker.
然而,通过所有这些步骤,我注意到每次新阶段开始时,gitlab ci 都会拉取 docker 图像。所以它会将我的管道分成几块,我无法从构建的 Vuejs 应用程序构建 docker 图像,也无法将图像推送到 Nexus。
有办法解决这个问题吗?谢谢
是的,这是真的 - 在 Gitlab 中(不同于 Jenkins
),每个作业都使用一个干净的、新签出的存储库运行。生成的工件不会自动从一个作业转移到下一个作业。
这使得有时很难建立连接的管道,但这并非不可能。
对于您的 use-case,我建议将管道归结为两个步骤:
- 构建:设置和构建项目
- 发布:Docker构建并推送到 Nexus
在 build 步骤之后,您可以使用 Gitlab's Artifacts 传输 build-output / build-artifacts (可能是 build
或 dist
文件夹?)或您在 Dockerfile
从第 1 步到第 2 步中需要的任何其他内容。