• 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:WindowsSystem32driversetchosts

    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

     

  • 相关阅读:
    [置顶] 当今世界最受人们重视的十大经典算法
    Android入门:调用WebService
    Android入门:实现一个File存储的辅助类
    多线程下载辅助类实现
    在Java程序中设置代理
    配置EditPlus使其可以编译运行java程序
    Android入门:文件上传
    Resource is out of sync with the file system
    【入门算法】思维导图
    sharepoint2010 重建服务器场的方法
  • 原文地址:https://www.cnblogs.com/devops-docker/p/11507589.html
Copyright © 2020-2023  润新知