使用docker安装jenkins以及配置
1. 容器运行
带dotnet环境的Jenkins:http://www.zkea.net/codesnippet/detail/docker-jenkins-dotnet-core.html
FROM jenkins/jenkins:lts USER root WORKDIR /dotnet RUN wget -O dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/ab82011d-2549-4e23-a8a9-a2b522a31f27/6e615d6177e49c3e874d05ee3566e8bf/dotnet-sdk-3.1.407-linux-x64.tar.gz RUN tar zxf dotnet.tar.gz -C ./ RUN rm -rf dotnet.tar.gz ENV PATH="${PATH}:/dotnet:/var/jenkins_home/.dotnet/tools" ENV DOTNET_ROOT="/dotnet" RUN apt update -y RUN apt install icu-devtools vim zip unzip -y RUN usermod -a -G root jenkins USER jenkins
构建镜像
docker build -t jenkins:dotnet3 .
docker-compose
version: '3.5' services: jenkins: image: jenkins:dotnet3 container_name: jenkins restart: always environment: - TZ=Asia/Shanghai ports: - 8080:8080 - 8085:50000 user: root volumes: - /opt/docker-v/jenkins/:/var/jenkins_home - /opt/docker-v/jenkins/.ssh/:/root/.ssh/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker networks: - mynet networks: mynet: driver: bridge
TODO:怎么安装多个.net环境
2. 创建映射目录
mkdir /opt/docker-v/jenkins chmod 777 /opt/docker-v/jenkins
3. 插件安装
输入初始密码后,进入初始插件安装页面,选择推荐插件。当插件开始安装的时候,停止容器。去updates目录配置插件源。
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
再次启动容器,重新输入初始密码,恢复刚刚的插件安装。安装结束后设置密码,进入系统。
进入到插件管理,刷新可选插件。然后再次将上面修改源的命令执行以下。再在插件管理,高级中,修改源。
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
重启Jenkins。
4. 插件说明
1) 权限管理 Role-based Authorization Strategy(另外安装)
全局安全策略---->授权策略---->选择Role-Base Strategy--->保存
manage and assign roles:
角色:
global roles
添加一个base角色,只选Read
添加一个build角色,只选build(这个角色是后面自动构建时候使用的)
item roles
根据项目名称xxx添加,需要配置pattern为xxx.*
用户:
系统管理--->用户管理。新建用户test_user
授权:
global roles
给test_user赋予base角色
给Anonymous赋予build角色(自动构建使用)
item roles
给test_user赋予xxx角色
创建任务,xxx_a、xxx_b进行测试
2)凭据管理Credentials Binding
ssh密钥
进入容器ssh-keygen -t rsa生成公钥和私钥,这样的公钥和私钥,下面3中使用会报错。建议使用下面密令生成:
ssh-keygen -m PEM -t rsa -b 4096
进入~/.ssh目录
id_rsa私钥文件
系统管理--->Manage Credentials--->全局--->添加凭据--->ssh username with private key
id: 取个名称,删除后,重新建,不用重新改流水线脚本
username: root
private key: id_rsa
id_rsa.pub公钥文件
拷贝到gitlee的ssh key
账号密码密钥:用于推送镜像
添加凭据,user with password
进入容器
ssh-copy-id 部署主机
系统管理-->系统配置-->Publis voer SSH
Path to key: /
SSH Server
Name和Hostname: 主机地址
Username: root
远程主机目录
Test Configuration---> Success
4)Gitee
地址:https://gitee.com/oschina/Gitee-Jenkins-Plugin
5. 全局工具配置
在docker卷映射目录下,创建一个app的目录,用来存放工具。
1)jdk
容器自带的jdk,进入容器
echo $JAVA_HOME
2)maven
进入到app中,创建maven目录。下载maven
wget https://mirror-hk.koddos.net/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz(失效到官网查找下载地址)
解压,修改maven配置的源和包的路径
tar -xzf apache-maven-3.6.3-bin.tar.gz
修改maven的配置文件镜像地址
jenkins后台,系统管理-->系统配置--->全局属性--->环境变量
M2_HOME
/var/jenkins_home/app/maven/apache-maven-3.6.3
PATH+EXTRA
$M2_HOME/bin
测试,构建脚本
mvn --version
3)nodejs
需要先安装插件
系统管理-->全局工具配置-->NodeJS--->安装
命名,在流水线脚本中使用
自动安装,选择稳定版本的NodeJS