Docker+jenkins+gitlab构建python项目,含项目环境搭建及过程中遇到的各种大坑,附解决方法!!!
Linux下部署Docker + jenkins + gitlab 服务构建python项目
首先检查服务器是否安装了docker
docker -version
docker version
普通账号记得在命令前边加上sudo执行,或者切换root账号,适用于本文提到的所有命令
如果已安装直接跳到下一步
未安装,需要先看自己服务器是什么系统,这里只说一下CentOs的安装命令
# 更新yum
sudo yum update
# 安装docker依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 换源,下载源换为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
yum makecache fast && yum -y install docker-ce
# 安装完成后先启动docker
systemctl start docker
# docker加速器配置
#添加 registry-mirrors
vim /etc/docker/daemon.json
#内容
{"registry-mirrors": ["https://registry.docker-cn.com"]
}
#重载 docker 的配置文件
systemctl daemon-reload
#重启 Docker
systemctl restart docker
##查看配置
docker info
** 如果启动报错,请查看daemon.json文件配置是否正确 **
到这步docker就安装完成了,下边附上一些docker常用命令
| 描述 | 命令 |
|---|---|
| 启动: | systemctl start docker |
| 重启: | systemctl restart docker |
| 开机自启动: | systemctl enable docker |
| ❖ 运行状态: | systemctl status docker |
| ❖ 查看所有镜像: | docker images |
| ❖ 搜索镜像: | docker search busybox |
| ❖ 拉取下载: | docker pull busybox:latest |
| ❖ 导出: | docker save busybox > busybox.tar |
| ❖ 导⼊: | docker load < busybox.tar |
| ❖ 删除: | docker rmi busybox:latest |
| ❖ 更改镜像名: | docker tag busybox:latest busybox:test |
| ❖ 查看镜像创建历史: | docker history busybox |
| ❖ 运⾏容器: | docker run -d --name=busybox busybox:latest ping 114.114.114.114 |
| ❖ 查看运⾏的容器: | docker ps,docker ps -a |
| ❖ 查看容器中运⾏的进程: | docker top busybox |
| ❖ 查看资源占⽤: | docker stats busybox |
| ❖ 容器: | docker start/restart/stop/kill busybox |
| ❖ 暂停容器: | docker pause/unpause busybox |
| ❖ 强制删除容器: | docker rm -f busybox |
| ❖执⾏命令: | docker exec -it busybox ls |
| ❖ 复制⽂件: | docker cp busybox:/etc/hosts hosts |
| ❖ 查看容器⽇志: | docker logs -f busybox |
| ❖ 查看容器/镜像的元信息: | docker inspect busybox |
| ❖ 格式化输出: | docker inspect -f ‘{{.Id}}’ busybox |
| ❖ 查看容器内⽂件结构: | docker diff busybox |
使用docker安装jenkins
#### 创建docker文件映射卷
docker volume inspect jenkins
#### 安装jenkins实例
命令一:
sudo docker run -d --name=jenkins -p 8080:8080 jenkins/jenkins
命令二:
docker run --name jenkins -d -p 8082:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins/jenkins
# 区别:命令一意思是把docker里边的jenkins镜像进行实例化并启动,命令二除了命令一的内容还会把镜像服务挂载到本地目录,方便后期数据迁移
# 注:如需要多个端口映射,增加多个-p参数即可
# 如容器未启动,请查看本地挂载目录读写权限
chmod 777
# 加上权限后使用docker start name 命令再次启动
#### 获取jenkins初始密码
方法一:
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
# -it i指交互式窗口 t指终端 terminal缩写
方法二:
docker logs -f jenkins
** 在日志中可以找到初始化密码 **
docker容器内存限制
这里插入一个环节,说下限制docker容器内存的方法,因为我们需要避免在实际工作中因某个服务内存占用过高而导致服务进程被杀死的问题
sudo docker update jenkins -m 1g --memory-swap -1
# --memory 或 -m 限制容器的内存使用量(如10m,200m等)
# --memory-swap # 限制内存和 Swap 的总和,不设置的话默认为--memory的两倍# 如果只指定了 --memory 则 --memory-swap 默认为 --memory 的两倍
# 如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap
# 如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制
# 如果设置了 --memory-swap 参数,则必须设置 --memory 参数
# 后期 update --memory 时数值不能超过 --memory-swap 的值,否则会报错 Memory limit should be smaller than already set memoryswap limit** 注:修改之前先停止容器,修改完成后再启动 **
#### 改完之后查看配置是否生效
sudo docker inspect jenkins
配置jenkins
jenkins访问地址:服务器IP+安装时候所配置的端口号
配置步骤
- 输入初始密码,在第二部分有获取初始密码的具体方法
- 创建管理员账号,可以选择使用默认的admin账号
- 配置访问路径,这里建议使用默认的就好
- 安装插件,不考虑时间问题的情况下,建议安装推荐配置



项目配置,这里根据自身需求选择就好,我只说下我自己的配置

如果你的gitlab项目为Public,那么凭证部分可以选择不填

点高级会出现下边的配置,你需要生成一个Secret token用于建立和gitlab的通信

最后,应用–保存,jenkins的配置就先告一段落。
配置gitlab
打开你的项目,找到设置–集成,英文版的自行翻译,或者找对应位置就好

配置一个Webhooks

到这gitlab和jenkins的通信就建立完成了,gitlab有pull或者merge操作的时候,就会触发jenkins的构建任务,将最新代码部署到jenkins所在的服务器

pytest+requests+yaml+allure+python3项目运行环境配置
项目运行环境配置
jenkins增加多节点构建项目
jenkins增加服务子节点
allure集成jenkins
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
