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

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

 

posted @ 2018-03-12 16:23  风吹一点云  阅读(254)  评论(0编辑  收藏  举报