安装Docker
略
Docker拉取Jenkins镜像
1 2 3
| # docker pull jenkins/jenkins:2.319.1 docker pull jenkins/jenkins:lts docker images
|
Docker-compose构建Jenkins容器
创建Jenkins目录
1 2 3 4
| mkdir -p /data/app/jenkins/jenkins_home/ chown -R 1000:1000 /data/app/jenkins/jenkins_home/
# /data/app/jenkins/jenkins_home // Jenkins挂载卷
|
编写docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # vim /data/docker-compose.yml version: "3" services: jenkins: user: root restart: "always" image: jenkins/jenkins:lts container_name: jenkins privileged: true ports: - 8080:8080 - 50000:50000 environment: JAVA_OPTS: -Duser.timezone=Asia/Shanghai volumes: - /etc/localtime:/etc/localtime - /data/app/jenkins/jenkins_home/:/var/jenkins_home - /usr/local/jdk:/usr/local/jdk - /data/app/jenkins/maven:/usr/local/maven - /data/app/jenkins/node:/usr/local/node - /var/run/docker.sock:/var/run/docker.sock - /root/.ssh:/root/.ssh #(可选)免密配置时,公钥可以直接在本地配置 - /root/.nvm:/root/.nvm # 提前宿主机安装好nvm,上面的node可以不用了
|
宿主机安装jdk
1 2 3 4 5 6 7 8 9 10
| # 下载或上传jdk包 cd /usr/local/src tar xf /usr/local/src/jdk.tar.gz -C /usr/local/ cat >> /etc/profile <<EOF
# ---> JDK <--- export JAVA_HOME=/usr/local/java export PATH=\$PATH:\$JAVA_HOME/bin # ---> JDK <--- EOF
|
宿主机安装maven
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| mvn_url="https://dlcdn.apache.org/maven/maven-4/4.0.0-alpha-13/binaries/apache-maven-4.0.0-alpha-13-bin.tar.gz" cd /usr/local/src curl -L ${mvn_url} -o /usr/local/src/maven.tar.gz tar xf ./maven.tar.gz -C /usr/local/ mv /usr/local/apache-maven* /usr/local/maven cat >> /etc/profile <<EOF
# ---> Maven <--- export MAVEN_HOME=/usr/local/maven/ export PATH=\$PATH:\$MAVEN_HOME/bin # ---> Maven <--- EOF source /etc/profile mvn -v
|
宿主机安装node或nvm工具
1 2 3 4 5 6 7 8 9 10 11 12
| # yum install -y gcc gcc-c++ # 下载或上传安装包 cd /usr/local/src tar xf ./node-* -C /usr/local/ mv /usr/local/node-* /usr/local/node cat >> /etc/profile <<EOF
# ---> Node <--- export NODE_HOME=/usr/local/node/ export PATH=\$PATH:\$NODE_HOME/bin # ---> Node <--- EOF
|
宿主机安装nvm: Node版本管理工具,可不安装node
1 2 3 4 5 6 7 8 9 10 11 12 13
| curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 用法 # 列出可用版本ls-remote nvm ls-remote # 安装最新版node nvm install node # 安装指定版本node nvm install 14.7.0 # 使用已安装的版本 nvm use node # 安装的第一个版本将成为默认版本
|
容器使用expect命令(可选)
1
| -v /usr/bin/expect:/usr/bin/expect
|
启动容器环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # vim docker-compose.yml [root@localhost deploy]# docker-compose -f /data/app/deploy/docker-compose.yml up -d WARN[0000] /data/app/deploy/docker-compose.yml: `version` is obsolete [+] Running 1/0 ✘ Network deploy_default Error 0.0s failed to create network deploy_default: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-3ee41a2982b1 -j RETURN: iptables: No chain/target/match by that name. (exit status 1)) [root@localhost deploy]# systemctl restart docker [root@localhost deploy]# docker-compose -f /data/app/deploy/docker-compose.yml up -d WARN[0000] /data/app/deploy/docker-compose.yml: `version` is obsolete [+] Running 2/2 ✔ Network deploy_default Created 0.1s ✔ Container jenkins Started
# 查看容器 docker ps
|
浏览器访问
1 2 3
| URL:https://服务器IP:2080 初始账号:admin 初始密码:cat /data/app/jenkins/jenkins_home/secrets/initialAdminPassword
|
安装插件
1 2 3 4 5
| #jenkins默认 https://updates.jenkins.io/update-center.json
#国内镜像源地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
|
- 安装
Publish Over SSH
、SSH plugin
Publish Over SSH
: 用于连接远程服务器的全局配置
SSH plugin
: 用于连接远程服务器的上传文件配置,在项目里配置
jenkins 添加构建(已完成)
新建任务–输入一个任务名称,选择构建一个自由风格的软件项目
源码管理–选择git,仓库URL从gitlab上获取
添加凭据,类型(SSH Username with private key)
将jenkins容器私钥添加到此,应用 – 保存,公钥添加到gitlab
添加webhooks (已完成)
- Jenkins添加插件 GibLab Plugin 与 generic Webhook Trigger、GitLab Authentication
任务–配置–构建触发器–Build when a change is pushed to GitLab. GitLab webhook URL: http://xxx
高级–生成Secret token