设置自己的持续交付堆栈

上周,我想与Jenkins一起使用“管道即代码”尝试新事物。 尝试新事物的最佳方法是将其作为Docker容器运行。 这样,我可以保持MacBook整洁,并且不会弄乱我正在研究的现有内容(另请参阅本文,了解Docker可为开发人员提供什么)。 使用Docker的另一个重要优势是,已经有完整的 Docker 堆栈可用于设置必要的工具。 但是,由于某些不清楚的原因,该堆栈在我的MacBook上不起作用(请参阅本期 ),因此我借此机会利用自己选择的一些Docker构建了自己的堆栈:-)。
我的堆栈中的工具是:

  • Nexus (作为Maven存储库)
  • Gitlab (用于托管我的Java项目的源代码)
  • 詹金斯 (当然要使用管道作为代码)

在这篇文章中,我描述了如何设置每个容器并使它们作为一个堆栈一起工作。 我从最简单的一个开始:

    • 关系

实际上,我更喜欢Artifactory,因为我更习惯使用它。 但是正如您在这里可以读到的那样我也很难将Artifactory设置为Docker容器并运行。 Nexus与这有何不同。 只需获得一个公开可用的Docker映像 ,设置一些端口即可。 这是我在“ docker-compose.yml”文件中使用它的方式:

...
services:
...
  nexus: 
    image: clearent/nexus
    volumes:
      - /opt/data/nexus:/nexus-data
    ports:
      - 8081:8081
...
    • 亚搏体育app

设置它有点困难。 我最终使用了以下Docker容器:

      • 雷迪斯
      • PostgreSQL的
      • 亚搏体育app

所有这些容器均基于Sameer Naik的工作。

    • Redis:最新

这个使用Ubuntu映像来自同一家伙,并在其上安装Redis。 有关更多详细信息,请参见此图像来源 。 图像本身可以在这里找到。

    • PostgreSQL:9.6-1

也基于Ubuntu的图像上,其源(和详细描述),可以发现在这里和泊坞图像此处

    • gitlab:8.15.4

最后是Gitlab映像,它也基于Sameer Naik的源代码( 此处 )和Docker映像( 此处 )。

要将这些图像组合到一个可以正常工作的Gitlab,我使用以下docker-compose代码段:

...
services:
...
  redis:
    image: sameersbn/redis:latest
    volumes:
      - /opt/data/gitlab/redis:/var/lib/redis
  
  postgresql:
    image: sameersbn/postgresql:9.6-1
    environment:
      - DEBUG=true
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production
      - DB_EXTENSION=pg_trgm
      - PG_TRUST_LOCALNET=true
    volumes:
      - /opt/data/gitlab/postgresql:/var/lib/postgresql
    ports:
      - "15432:5432"        
  
  gitlab:
    image: sameersbn/gitlab:8.15.4
    depends_on:
      - redis
      - postgresql
    ports:
      - "8082:80"
      - "8022:22"
    environment:
      - DEBUG=true
      - TZ=Europe/Berlin
      - GITLAB_TIMEZONE=Berlin
      - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string 
      - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string
      - GITLAB_HOST=localhost
      - GITLAB_PORT=8082
      - GITLAB_SSH_PORT=8022
      
      - DB_ADAPTER=postgresql
      - DB_HOST=postgresql
      - DB_PORT=5432
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production

      - REDIS_HOST=redis
      - REDIS_PORT=6379
      ...
    volumes:
      - /opt/data/gitlab/gitlab:/home/git/data
...

在这里查看我的Gitlab存储库以获取完整的docker-compose文件。

    • 詹金斯

最后是詹金斯本身。 我从“官方”詹金斯图像开始,但是那对我来说是一些选择,所以我创建了自己的图像,可以在这里找到。

我所做的更改是在操作系统中添加了“ httping”软件包,并且默认情况下已安装了GitLab插件 ,因为我在设置中需要它。 Dockerfile看起来像这样:

FROM jenkins:2.32.1
USER root
RUN apt-get update && apt-get install -y httping

COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

现在,我已经完成了堆栈的所有组件。 完整的Docker Compose文件可在此处找到。 您可能会注意到,我在主机上使用一些目录来存储数据。 您可以在这里阅读更多有关它的信息 。 要在Mac OS上的Docker中进行设置,请转到Docker偏好设置和“文件共享”窗格,然后添加要在其中存储数据的目录:

这样,我可以轻松地处理堆栈,删除堆栈并创建一个新堆栈,而不会丢失我已经添加的配置和设置。

要启动堆栈,我只需执行“ docker-compose up”,然后启动不同的Docker容器:

现在,我可以通过浏览器输入詹金斯:

并开始使用它。

在另一篇文章中,我将展示如何进一步配置Jenkins,以及一个示例,该示例如何通过使用“管道作为代码”使用此堆栈来设置Spring Boot项目。

翻译自: https://www.javacodegeeks.com/2017/01/set-continuous-delivery-stack.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值