docker - 如何从 Vuejs 应用程序构建 docker 映像并通过 GitLab CI/CD 推送到 Nexus 存储库?
问题描述
我有需要构建的 Vuejs 应用程序,以便作为 Docker 映像推送到 Nexus。GitLab 存储库中的所有 Vuejs 内容存储。
这些阶段的管道很简单
- 设置(从管道获取信息)
- 构建(npm install 和 npm run build)
- 创建 docker 镜像(这将使用 Vue 应用程序执行 docker build)
- 将图像推送到 Nexus
我将 GitLab-runner 与 docker executor 一起使用,并且我创建了 Dockerfile,其中包含运行 npm、docker 所需的包。
但是,通过所有这些步骤,我注意到每次新阶段开始时 gitlab ci 都会拉取 docker 映像。所以它会将我的管道分解成碎片,我无法从构建的 Vuejs 应用程序构建 docker 图像,也无法将图像推送到 Nexus。
无论如何要解决这个问题?谢谢
解决方案
是的,这是真的——在 Gitlab 中(除了在 eg 中Jenkins
),每个 Job 都使用一个干净的、新签出的存储库运行。生成的工件不会自动从一个作业转移到下一个作业。
这使得有时很难建立连接的管道,但这并非不可能。
对于您的用例,我建议将管道简化为两个步骤:
- 构建:设置和构建项目
- 发布:Docker 构建并推送到 Nexus
在构建步骤之后,您可以使用Gitlab 的工件来传输构建输出/构建工件(可能是build
or文件夹?)或从步骤 1 到步骤 2dist
中您需要的任何其他内容。Dockerfile
推荐阅读
- sql - 每天早上,长时间运行的 SQL 查询会使我们的 WordPress / WooCommerce 网站崩溃
- php - 根据不同的数组列php对数组进行排序
- php - fopen(C:\wamp64\www\jarian\public):无法打开流:权限被拒绝 Windows 10 Wamp
- javascript - 我想在 Vuex 之间共享价值观
- javascript - 如何访问每个数组中的元素?
- reactjs - 将表单值发送到服务器的正确方法 - React
- python-3.x - 显示特定月份的所有日期以获取数据
- python - Python网络爬取错误:将数据传输到数据库
- c++ - 在c ++中暂停执行的最快方法是什么
- python - 始终在框架中测量没有参考对象的对象大小