Linux系统 Docker Jenkins+Docker+Gitlab+Maven搭建持续集成环境

Jenkins+Docker+Gitlab+Maven搭建持续集成环境

Gitlab docker下载安装配置

一、安装配置docker服务

# yum -y install git docker 安装git docker 服务

# systemctl start docker   启动docker服务

# systemctl enable docker docker服务开机自动开启

# docker search gitlab            搜索gitlab容器镜像

# docker pull docker.io/gitlab/gitlab-ce             下载gitlab 容器镜像

# docker tag  docker.io/gitlab/gitlab-ce gitlab/gitlab-ce:v1   更改容器名称

# docker images       查看下载的容器镜像

# hostnamectl set-hostname gitlab.mengqi.com            设置主机名称

在linux下:

 #vim /etc/hosts

192.168.2.41 gitlab

 在windows下:

 #cd C:\Windows\System32\drivers\etc\hosts

192.168.2.41 gitlab

# mkdir -p /opt/gitlab/config /opt/gitlab/logs /opt/gitlab/data

# docker run -d --hostname ${HostName} -p 10443:443 -p 18080:80 -p 10022:22 --name gitlab --restart always --volume /opt/gitlab/config:/etc/gitlab --volume /opt/gitlab/logs:/var/log/gitlab --volume /opt/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:v1     启动gitlab docker容器  

指定了三个端口,22表示ssh端口,80表示http端口,443表示https端口,分别映射到宿主机上的10022、18080和10443端口,我们还通过--volume指定目录映射,其中

/etc/gitlab表示gitlab的配置目录,映射到宿主机的/opt/gitlab/config目录.

/var/log/gitlab表示gitlab的日志目录,映射到宿主机的/opt/gitlab/logs目录.

/var/opt/gitlab表示gitlab的数据目录,映射到宿主机的/opt/gitlab/data目录.

页面访问的网址是http://gitlab.mengqi.com:18080 账户root密码admin1234

 

 

 

 

接下来新建一个空的项目hello,其中hello为项目名称,可设置可见性级别:

Private表示私有项目,授予具体权限的用户才能访问.

Internal表示内部项目,可登陆的用户都能克隆项目.

Public表示公开项目,没有任何权限的用户都能克隆项目.

 

 

 

 

 

接着我们需要做的就是将本地java代码推送至gitlab中.

 

Git global setup 设置全局git
git config --global user.name "Administrator"
git config --global user.email "13486157333m@sina.cn"
Create a new repository
git clone http://gitlab.mengqi.com/root/hello.git
cd hello
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder
cd existing_folder
git init
git remote add origin http://gitlab.mengqi.com/root/hello.git
git add .
git commit -m "Initial commit"
git push -u origin master
Existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.mengqi.com/root/hello.git
git push -u origin --all
git push -u origin --tags

 

#docker search Jenkins 查询jenkins docker容器

 

 

# docker pull docker.io/jenkinsci/jenkins         下载jenkins

# docker tag docker.io/jenkinsci/jenkins jenkins/jenkins:v1修改镜像名称

 

Gitlab与Jenkins部署在同一台机器上

# mkdir /opt/Jenkins  jenkins配置文件目录

# docker run -d -p 28080:8080 -p 50000:50000 --name jenkins --link gitlab:${HostName} -u root -v /opt/jenkins:/var/jenkins_home jenkins/jenkins:v1

Jenkins部署单独部署

# docker run -d -p 28080:8080 -p 50000:50000 --name jenkins --hostname jenkins --restart always -u root -v /opt/jenkins:/var/jenkins_home jenkins/jenkins:v1

Jenkins地址http://192.168.2.41:28080/

 

 

 

 

# docker exec ${docker_ID} cat /var/jenkins_home/secrets/initialAdminPassword 或者 # cat /opt/jenkins/secrets/initialAdminPassword

 

 

 

账号admin1 密码admin1234

 

初始界面

 

 Maven项目,系统管理-插件管理-可安装搜索Maven Integration  、Git Parameter 、 Gitlab Hook

通过配置令牌远程触发项目构建;要启用Token(令牌)远程触发项目构建首先要保证Jenkins服务安装了“Build Authorization Token Root “”插件,并且配置了Jenkins的身份验证。

 

  

安装maven插件

创建maven项目

 

1.进入到项目构建

 

2.添加jenkins秘钥连接

 

上面填写的是gitlab的用户名密码验证,添加完后需要选中它

3.配置pom.xml文件 clean package -q -Dmaven.test.skip=true 

 

 

 

 

构建目录 jar包 /opt/jenkins/workspace/${项目名称}/target

 

根据制作的dockerfile制作镜像例

# touch dockerfile

编辑dockerfile

# vim dockerfile

FROM docker/java:v1

MAINTAINER hetao

ADD ./eureka-1.0.1.jar /app/eureka-1.0.1.jar

ENTRYPOINT ["java","-jar","/app/eureka-1.0.1.jar"]

EXPOSE 19000

 

# docker build -t ${DockerName} .

 

gitlab备份迁移

因为是容器迁移所以需要迁移容器镜像
# docker save gitlab/gitlab-ce:latest > ./gitlab_ce_10.3.0.tar.gz

导入
# docker load -i gitlab_ce_10.3.0.tar.gz

备份gitlab.rb配置文件

/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份
/var/opt/gitlab/backups 备份文件位置

 

查看源gitalb容器挂载目录
# docker inspect 容器ID | grep Mounts -A 20

备份时需要保持gitlab处于正常运行状态,直接执行
# gitlab-rake gitlab:backup:create

远程拷贝至迁移目的机器
# scp -r /srv/gitlab/data/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar root@192.168.88.47:/opt/data/gitlab/backups

gitlab恢复、停止相关数据连接服务

# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
# chmod 777 /opt/data/gitlab/backups
# gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4
# gitlab-ctl start

 

 

posted @ 2019-09-11 17:31  浮尽繁华  阅读(746)  评论(0编辑  收藏  举报