Skip to content
fushang318 edited this page Jun 23, 2016 · 1 revision

1 准备centos 7 系统
选择 centos 7 是因为它支持 docker

2 安装 git java
yum install git java

3 安装 docker

echo '
[dockerrepo]
name=Docker Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/repo/centos7
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/gpg
' > /etc/yum.repos.d/docker.repo

sudo yum makecache
sudo yum install docker-engine

4 安装 jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

5 启动 jenkins

systemctl start jenkins.service

6 把 jenkins 用户增加到 docker 组,使其可以有运行 docker 的权限

usermod -aG docker jenkins

7 安装插件

浏览器访问 http://host:8080
导航连进入 系统管理 -> 管理系统 -> 可选插件
安装如下几个插件:
Pipeline
CloudBees Docker Pipeline
github
重启 jenkins

8 增加用户访问权限

浏览器访问 http://host:8080
导航连进入 系统管理 -> Configure Global Security
启用安全
全选域选择 Jenkins专有用户数据库 允许用户注册
授权策略选择 登录用户可以做任何事
保存,并重启 jenkins,然后注册用户(该用户作为 admin 用户)
重新进入 系统管理 -> Configure Global Security
授权策略选择 安全矩阵,并给新注册的用户增加所有权限
安全域去掉允许注册用户注册
保存,并重启 jenkins

9 增加项目
点击左侧导航连新建,选择 Pipeline 类型,并输入项目名称

10 项目设置中
github webhook 设置方式还没有尝试,这部分待补充

11 pipeline script 举例

node ('master'){
  env.WORKSPACE = pwd()
  echo "${env.WORKSPACE}"

  stage 'Build'
  checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/fushang318/jenkins_nodejs_test.git/']]])
  withDockerContainer(args: "--privileged -u root --volume ${env.WORKSPACE}:/code:rw,Z", image: 'ubuntu') {
    sh 'echo RUN BUILD TESTS'
    sh 'ls /code'
  }

  stage 'Unstable'
  sh 'echo "Upload new docker to registry with tag: unstable"'
  sh 'echo RUN INTEGRATION TESTS'

  stage 'Testing'
  sh 'echo "Upload new docker to registry with tag: testing"'
  sh 'echo RUN UAT TESTS'

  stage 'Stable'
  sh 'echo "Upload new docker to registry with tag: stable"'

}

可以写在jenkins项目配置中,也可以写在项目版本库的 Jenkinsfile 文件

Clone this wiki locally