continuous-integration - GitLab CI构建子项目并分别部署到kubernetes

标签 continuous-integration gitlab kubernetes continuous-deployment gitlab-ci

如果我有一个 GitLab 项目,其中包含几个子文件夹:

  • 两个使用 java 代码(来自 java:alpine,用 maven 编译和构建容器)
  • 带有 nginx 配置的(来自 openresty:alpine,用于构建 Web 服务器容器)

每个子项目都有一个 Dockerfile、deployment.yml 和 gitlab-ci.yml。

deployment.yml 对于项目中的每个子文件夹都是相似的,因为所有子项目都会生成一个多容器 kubernetes pod。

我如何设置此项目以仅构建我在上次提交时编辑的容器并将其部署到 kubernetes?

最佳答案

我使用了一个肮脏的 hack,比如在 .gitlab-ci.yml 中为每个子项目设置几个构建 block ,并为每个子项目设置 only 参数:

maven-build-akka:
  image: maven:3-jdk-8
  stage: build
  only:
    - /^akka-.*$/
  script:
    - cd akka
    - mvn package -B --settings ../settings.xml
  artifacts:
    paths:
      - akka/target/*.jar

对于 docker 构建阶段 也是如此。

之后,如果我推送像 akka-1.0.3 这样的标签,就会启动适当的管道作业。

但是,单个项目在 GitLab CI 注册表中只有一个图像名称存在问题,因此您应该将图像推送到其他地方(GCR 等)

关于continuous-integration - GitLab CI构建子项目并分别部署到kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946581/

相关文章:

kubernetes - Hyperledger Fabric v1.4 中 Kubernetes 上的外部 Chaincode Pod

amazon-web-services - AWS 代码构建 : environment variables not found during CI jobs

android - Travis CI 错误 : Could not access package manager. 系统是否运行?

ruby-on-rails-3 - Gitlab 在带有 apache 和乘客的子目录中

AWS 中的 Kubernetes PersistentVolumeClaim 问题

kubernetes - 在 Kubernetes AKS 中加密静态 secret 数据?

Jenkins 更改构建历史时间戳

postgresql - GitLab CI 修改 postgres 服务设置

ssh - Gitlab不推送分支,访问被拒绝?

git 忽略 .env 文件不起作用