我有一个Node.js应用程序,我想在Gitlab CI/CD中容器化。这个应用程序包含一个git子模块,其中包含它的Angular前端。在进行“docker-build”作业之前,必须生成前端。
我的想法是在我的.gitlab-ci.yml
文件中添加一个专用的stage,它将在缓存的“fe”目录中生成前端:
stages:
- front-end
- build
- test
- package-build
front-end:
stage: front-end
image: "registry.hub.docker.com/trion/ng-cli-karma:latest"
script:
- npm run fe-install
- npm run fe-build
cache:
paths:
- fe
但是,如何在后续的“docker-build”作业中获取这个缓存的“fe”目录,以便Dockerfile可以将前端复制到容器中?
我忘了说“docker build”工作是由从“to-be-continuous”框架导入的文件提供的。我想这一点很重要
2条答案
按热度按时间bis0qfac1#
我认为你可以在你的
.gitlab-ci.yml
中使用artifacts关键字。这样,您就可以在后续的docker-build
作业中获取缓存的fe
目录。更新文件:
xxhby3vn2#
GitLab CI/CD的
cache
功能允许您保存作业之间的依赖关系和工件。以下是如何修改
.gitlab-ci.yml
文件的示例:在Dockerfile中,您可以使用
COPY
命令将缓存的前端目录复制到容器中。使用此配置,前端将在
front-end
作业中生成并缓存。然后,在docker-build
作业中,您可以使用Dockerfile中缓存的前端目录。这可以确保您的前端包含在Docker镜像中。