zoukankan      html  css  js  c++  java
  • Centos & Docker & Jenkins & .net core

    下载 Decker CE

       CentOS 7 基本仓库是带docker的,但是不是官方的版本,而且版本也比较低,我们使用官方的yum源,而且对以后的升级也很方便。

    wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo
    yum install docker-ce

      通常会指定版本安装,如果不指定,将会使用最新版本安装,通过使用下面的命令,可以查看docker的版本信息。

    yum list docker-ce.x86_64  --showduplicates | sort -r

      安装时可以指定版本,默认安装最新版

    yum install docker-ce  -<VERSION>

    配置加速器

      针对国内使用docker服务器拉取速度会很慢的情况,我们可以使用BTA提供的加速器,

      这里使用阿里提供了免费的加速器服务:修改daemon配置文件/etc/docker/daemon.json来使用加速器,

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["加速器地址"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

     

    安装Jenkins

      不直接从Docker Store上直接Pull Jenkins 的 Image 文件,因为要进行dotnet core 的 Docker自动部署,需要对宿主机上的Docker进行直接操作,那么需要挂载 Docker 给 Jenkins Image,所以现在需要自己动手编写 Dockerfile 构建自定义的Jenkins。

    //创建Dockerfile文件编辑
    touch Dockerfile
    vim Dockerfile

      Dockerfile文件中手动添加配置环境

    FROM jenkins
    
    USER root
    #使用环境的
    RUN echo
    '' > /etc/apt/sources.list.d/jessie-backports.list && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list #更新源并安装缺少的包 RUN apt-get update && apt-get install -y libltdl7 && apt-get update ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安装 docker-compose 因为等下构建环境的需要 RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose

     

      构建docker中Jenkins的image

    docker build . -t auto-jenkins

      出现以Successfully  tagged  auto-jenkins:latest 内容代表安装Jenkins成功,可以使用docker images 查看。

      创建一个Jenkins的配置目录

    mkdir -p /var/jenkins_home

      将Jenkins run起来

    docker run --name jenkins -p 8001:8080 -p 50000:50000 
        -v /var/run/docker.sock:/var/run/docker.sock 
        -v $(which docker):/bin/docker 
        -v /var/jenkins_home :/var/jenkins_home 
        -d auto-jenkins

      第一行:构建一个名称为jenkins的容器  -p 是容器运行开放端口  (左边是服务器端口:右边是容器中的端口)

      第二行 和第三行: -v 是将宿主机的docker文件挂载进容器里

      第四行:建立宿主机的配置目录,挂载进docker容器里,这样容器里的Jenkins配置目录文件就会映射出来

           第五行:使用auto-jenkins Image 并且后台启动

      通过docker ps 查到容器

      执行docker ps 查询不到时,使用docker ps -a 查询,如果容器存在 status列报错,执行docker start -a jenkins 让容器前台输出运行信息的方式运行

      报这个错是文件夹权限问题,修改文件夹权限

    chown -R 1000 /var/jenkins_home

      重新docker run 之前需要先删除之前的容器

    docker rm -f jenkins

     下面在电脑上输入http://xxxxx:8001,打开Jenkins 页面

     

    jenkins配置

       Jenkins首次打开会要求用户输入密钥,这个密钥会在指定的路径下面,有两种查看密钥的方式

      1、直接到/var/jenkins_home/secrets/initialAdminPassword 路径下面去找密钥,在执行docker run 的时候,我们在cengtos 中创建了一个 /var/jenkins_home

    的映射

    cat /var/jenkins_home/secrets/initialAdminPassword

      2、进去到容器中到 找同样的地址

    docker exec -it jenkins /bin/bash

     

      输入地址和端口号打开jenkins,首次进入需要将找到的密码复制进去,然后创建账号,随便填就好了

     

      初始化jenkins

      选择新建一个项目,构建一个自由风格的软件项目

       设置源码管理和分支

     

       Poll SCM设置 ,可以根据自己实际情况设置,定时感知代码分支是否有变化,如果有变化的话,执行一次构建。这里设置每60分钟获取一次

       Build periodically 设置定时构建,不管代码是够变化,定时构建

     

      使用docker-compose构建

    #!/bin/bash
    # 获取短版本号
    
    GITHASH=`git rev-parse --short HEAD`
    echo ---------------Remove-Orphans------------------
    docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p dockercompose4255153253317384266 down --rmi local --remove-orphans
    echo ------------------Config-----------------------
    docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 config
    echo ------------------Build------------------------
    docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 up --build
    echo ---------------Publishing...------------------
    docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml"  -p dockercompose4255153253317384266 up -d --build

    发布成功,输入地址端口就可以访问,在服务器后台需要将端口开放出来

     

  • 相关阅读:
    JavaWeb下载文件response
    jQuery的prop和attr的区别,及判断复选框是否选中
    【转载并整理】mysql 创建用户,数据库
    【转载】mysql配置模板(my-*.cnf)参数详细说明
    【转载】mysql 热备份
    【转载】centos 安装及配置 mysql5.5.3
    【微信开发】简单的微信分享小插件
    一些http或https请求的参数,什么情况下需要urlencode编码
    sublime在混杂的log数据中提取你想要的内容
    聊聊分布式事务【转】
  • 原文地址:https://www.cnblogs.com/li-lun/p/8535290.html
Copyright © 2011-2022 走看看