简介
在现代软件开发过程中,持续集成和持续部署(CI/CD)是提高开发效率和代码质量的关键,Jenkins和GitLab是实现CI/CD流程的常用工具,Jenkins是一个开源的CI工具,可以自动化各种任务,从构建到部署;而GitLab则提供了版本控制和代码审查的功能,同时还支持持续集成,Docker作为一种轻量级的容器化技术,可以让应用在不同环境中一致性地运行,非常适合用来部署和管理Jenkins与GitLab这样的服务,本文将详细介绍如何使用Docker来搭建Jenkins和GitLab的环境,并实现自动化部署。
准备工作
确保你有一台内存16G以上的机器,并且已经安装了Docker,本文假设你已经熟悉基本的Git、Linux、Docker、Java、Maven以及shell命令操作。
创建Docker桥接网络
为了使得各个容器之间能够相互通信,首先创建一个Docker桥接网络:
$ docker network create driver bridge subnet 172.12.0.0/16 gateway 172.12.0.1 mybridge
部署应用容器
我们部署一个应用容器,它将用于运行最终的Java应用:
$ docker run interactive tty detach name app hostname app restart onfailure network mybridge publish 31022:22 publish 31808:8080 volume $PWD/app:/root/app ubuntu:20.04
在容器内部安装SSH和Java:
$ docker exec it app bash > apt update && apt install y opensshserver openjdk8jdkheadless > cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org > echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config > /sbin/sshd
如果遇到报错,需要手动创建/run/sshd
目录:
> mkdir /run/sshd > /sbin/sshd
设置root密码:
> passwd
部署Jenkins
拉取Jenkins镜像并启动容器:
$ docker run name=jenkins privileged=true u root rm d p 8080:8080 p 50000:50000 v /var/run/docker.sock:/var/run/docker.sock v /usr/bin/docker:/usr/bin/docker v $(which docker):/usr/bin/docker v /etc/sysconfig/docker:/etc/sysconfig/docker v /usr/java/jdk1.8.0_181:/usr/java/jdk1.8.0_181 v /home/maven/apachemaven3.3.9:/usr/local/maven v /home/maven/repo:/usr/local/maven_repository v /home/jenkinsdata:/var/jenkins_home jenkins/jenkins:lts
访问Jenkins并进行初始化配置,安装推荐的插件,并创建管理员账户,之后进行Maven的配置,指定Maven路径,并应用于全局工具配置中。
部署GitLab
拉取GitLab镜像并启动容器:
$ docker run detach publish 8443:443 publish 8090:80 name gitlab restart unlessstopped v /data/gitlab/etc:/etc/gitlab v /data/gitlab/log:/var/log/gitlab v /data/gitlab/data:/var/opt/gitlab gitlab/gitlabce
配置GitLab主机名并启动服务,至此,Jenkins和GitLab的基础环境已经搭建完成。
Jenkins和GitLab集成
在Jenkins中安装GitLab插件,并在“系统管理”>“系统设置”中配置GitLab的连接信息,创建一个新的Jenkins任务,选择“构建一个自由风格的软件项目”,并配置GitLab仓库地址,在源码管理中认证完成后,移步构建环境,设置发送文件或执行命令通过SSH,配置相关脚本以停止和运行你的应用容器,配置GitLab webhook以自动触发Jenkins构建。
使用效果验证
通过以上步骤,你应该已经建立了一个自动化的CI/CD流程,当你向GitLab推送代码时,Jenkins将自动执行构建,并将应用包部署到之前配置的应用容器中,你可以通过浏览器访问应用容器的服务验证结果。
使用Docker部署Jenkins和GitLab不仅便于管理和维护,而且能够帮助快速搭建起一个完整的CI/CD流程,通过本文的介绍,你应当已经掌握了使用Docker搭建Jenkins和GitLab环境的方法,从而实现自动化的代码构建和部署,这种自动化流程显著提高了开发过程的效率和可靠性,是现代软件开发不可或缺的一环。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/844853.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复