2017-03-15 50 views
1

这是可能建立一个配置,其中包括:GitLab CI管线与多容器kubernetes荚

  1. GitLab项目#1 Java的容器
  2. GitLab项目#2的Java容器
  3. Nginx的容器
  4. Redis的容器
  5. 卡桑德拉容器
  6. Nginx的出口(普罗米修斯)
  7. Redis的出口(普罗米修斯)
  8. JMX出口(普罗米修斯)×2

有这都在一个多容器荚上kubernetes是很重要的(GKE),并通过共享卷和本地主机通信。

我已经在kubernetes中用初始容器完成了所有这些工作(拉取代码并编译它),现在我正在寻找使用CI/CD的方法。因此,如果这可以通过GitLab CI来完成,那么请你指点正确的文档或手册页,因为我是GitLab CI中的新手,而且已经在几十个来自互联网的文章。

在此先感谢。

+0

你能配置这个吗?如果是,请分享有用的文档/注释。 – Sharan

+0

@Sharan我正在处理它。我会在我的问题旁边回答,并在我通过此操作时添加更新。 –

+0

欣赏帮助。我发现你分享的文件很有帮助。 – Sharan

回答

1

第一件事就是加入所有项目,这些项目应该使用maven和(或)docker构建到GitLab的一个公共项目中。

接下来是将dockerfiles和docker build所需的所有文件添加到子项目文件夹中。

接下来在通用项目的根目录下,我们应该放置.gitlab-ci.yml和deployment.yml文件。

deployment.yml应该是common或all的子项目。

.gitlab-ci.yml应包含构建每个子项目的所有阶段。由于我们不需要在每次修改sime文件时都创建所有的东西,所以我们应该在git中使用标记来让GitLab CI能够理解,在这种情况下,它应该运行一个或另一个阶段。这可以通过onlyparameter实现:

docker-build-akka: 
    stage: package 
    only: 
    - /^akka-.*$/ 
    script: 
    - export DOCKER_HOST="tcp://localhost:2375" 
... 

等都在每一个阶段。因此,如果您对所需的Dockerfile或Java代码进行了更改,则应该使用类似akka-0.1.4的标签提交并推送到gitlab,并且GitLab CI runner将只运行适当的阶段。

此外,如果您对README.md文件或其他任何更改进行更改,那么不需要构建项目 - 它不会。

很多有用的东西,你可以找到herehere

另外,看看problem,我遇到了在kubernetes中运行docker构建阶段。这可能对我有所帮助。