一站式自动化部署Jenkins+docker部署GitLab

mac2024-06-20  56

一站式自动化部署Jenkins+docker部署GitLab

一、准备工作1.1、创建目录和拉取镜像 二、docker部署2.1、启动容器命令: 三、问题整合3.1、GitLab1、GitLab设置中文2、设置ssh 3.2、文件脚本1、:jenkins配置文件2、:linux打包脚本jenkins-build.sh3、:linux部署脚本jenkins-deploy.sh4、:dockerFile内容 声明:因为很多博客涉及问题解释不全,本博主主要目的就是按照实际生产环境搭配之后,把所有问题汇总收集,原文链接会放出来,若侵权请及时联系作者删除!

一、准备工作

1.1、创建目录和拉取镜像

mkdir -p /home/gitlab/config mkdir -p /home/gitlab/logs mkdir -p /home/gitlab/data mkdir /var/jenkins_home chown -R 1000:1000 /var/jenkins_home docker pull gitlab/gitlab-ce docker pull jenkins/jenkins

注意: 校准服务器时间,时间不对会导致GitLab登录异常。 ntpdate离线安装。

yum –y install ntp ntpdate ntp1.aliyun.com

时间错位12小时,是安装npt默认纽约时区造成。

rm -rf /etc/localtime cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime systemctl restart ntpd

二、docker部署

2.1、启动容器命令:

GitLab命令:

docker run -d --restart always --hostname wqd.github --name github -p 3380:80 -p 3322:22 -p 3443:443 \ -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce

Jenkins命令: jenkins 部署问题 and 插件问题。

docker run --name myjenkins -p 8081:8080 -p 50000:50000 --env JAVA_OPTS="-Duser.timezone=GMT+08" \ -v /var/jenkins_home:/var/jenkins_home -d jenkins/jenkins

插件问题替换下载源

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/jenkins_home/updates/default.json

linux部署命令,若需要使用jdk和maven,建议使用,下载jenkins。:

nohup java -jar jenkins.war --httpPort=8008 >jenkins.text &

三、问题整合

3.1、GitLab

1、GitLab设置中文

2、设置ssh
ssh-keygen -t rsa -C "11111111@qq.com" cat /root/.ssh/id_rsa.pub ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.159

注意:添加sshkey之后还是报错是因为第一次需要输入yes,jenkins无法输入,需要在centos终端先clone中输入yes git clone git@1docker 172.17.0.4:root/cn.gov.sach.git

3.2、文件脚本

1、:jenkins配置文件
#!groovy pipeline{ agent any environment{ MOUDLE="business" } stages{ stage('获取代码'){ steps{ deleteDir() git branch: 'master', url: 'http://192.168.1.133:3380/root/ncha.git' } } stage('编译+单元测试'){ steps{ echo"start compile" sh "mvn -U -pl ${MOUDLE} -am clean package -Dmaven.test.skip=true " } } stage('构建镜像'){ steps{ echo"start build" sh "/root/jenkins-sh/jenkins-build.sh ${MOUDLE} " } } stage('更新镜像'){ steps{ echo"start update" sh "/root/jenkins-sh/jenkins-deploy.sh ${MOUDLE}" } } } }
2、:linux打包脚本jenkins-build.sh
#!/bin/bash MOUDLE=$1 TIME="`date +%Y%m%d%H`" IMAGE_NAME=${MOUDLE}:${TIME} cd /root/.jenkins/jobs/ncha-master/workspacecd cd ${MOUDLE} docker build -t 192.168.1.132/ncha/${IMAGE_NAME} . docker login -u admin -p Harbor12345 192.168.1.132 docker push 192.168.1.132/ncha/${IMAGE_NAME}
3、:linux部署脚本jenkins-deploy.sh
#!/bin/bash MOUDLE=$1 TIME="`date +%Y%m%d%H`" IMAGE_NAME=${MOUDLE}:${TIME} ssh root@192.168.1.159 << remotessh docker pull 192.168.1.132/ncha/${IMAGE_NAME} docker service update --image 192.168.1.132/ncha/${IMAGE_NAME} ncha_${MOUDLE/_/-} exit remotessh
4、:dockerFile内容
FROM 192.168.1.144/aaa/jre8:latest MAINTAINER ncha COPY target/*.jar /app.jar ENTRYPOINT ["java", "-jar", "/app.jar"]
最新回复(0)