在本文中,我们将为您详细介绍docker安装jenkins并用docker部署net的相关知识,并且为您解答关于docker安装jenkins的疑问,此外,我们还会提供一些关于CentOS7环境下使用
在本文中,我们将为您详细介绍docker安装jenkins并用docker部署net的相关知识,并且为您解答关于docker 安装jenkins的疑问,此外,我们还会提供一些关于CentOS7 环境下使用docker安装jenkins、Docker 安装Jenkins、Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境、Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目的有用信息。
本文目录一览:- docker安装jenkins并用docker部署net(docker 安装jenkins)
- CentOS7 环境下使用docker安装jenkins
- Docker 安装Jenkins
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
docker安装jenkins并用docker部署net(docker 安装jenkins)
1. 部署jenkins
1.1 创建jenkins的工作目录
//创建工作目录
mkdir /var/jenkins_home
//赋予权限
chown -R 1000 /var/jenkins_home
1.2 通过docker部署
1.2.1 拉取镜像
docker pull jenkinsci/blueocean
1.2.2 生成容器
#注意:切换一行执行命令
docker run -u root -d -p 8080:8080 -p 50000:50000
-v /var/jenkins_home:/var/jenkins_home
-v /usr/bin/docker:/usr/bin/docker
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
jenkinsci/blueocean
一行显示:
docker run -u root -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose jenkinsci/blueocean
1.3 通过docker-compose部署
执行docker-compose脚本
version: ''3.4''
services:
jenkins:
container_name: jenkins
image: jenkinsci/blueocean
ports:
- "8080:8080"
- "50000:50000"
restart: always
user: root
volumes:
- ''/var/jenkins_home:/var/jenkins_home''
- ''/usr/bin/docker:/usr/bin/docker''
- ''/var/run/docker.sock:/var/run/docker.sock''
- ''/usr/local/bin/docker-compose:/usr/local/bin/docker-compose''
environment:
- TZ=Asia/Shanghai
1.3.1 执行命令生成容器
docker-compose -f docker-compose.yaml up --build -d jenkins
2. 访问jenkins网站
2.1 寻找超级管理员密码
进入容器,然后去容器的执行目录下查找管理员的密码
// 进入容器
docker exec -it 容器ID bash
// 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword
输入找到的管理员密码然后进入系统
2.2 进入jenkins
新手入门,选择安装插件的方式,这里我们直接选择安装推荐的插件然后进入系统
注意:安装插件报错的话继续在执行一遍。
2.3 设置管理员用户密码
创建管理员用户密码
2.4 系统界面
如果系统管理里面有错误,那么我们可以手动安装和修改。
3. 通过docker部署程序
3.1 创建任务
3.1.1 选择自由风格的软件项目
3.1.2 添加源代码管理
在源码管理里面勾兑Git,然后输入仓库地址,添加你仓库对应的用户名和密码并且执行分支
指定分支的地方直接写 dev或者master
3.1.3 构建命令
选择执行shell脚本
docker-compose -f build/docker-compose.yaml up --build -d
保存,选择立即构建。
构建历史的构建状态变为蓝色,则代表构建成功;红色代表构建失败。
3.2. 错误
如果出现错误,那么就需要去查看控制台输出,根据错误找原因。
本文分享自微信公众号 - dotNET跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
CentOS7 环境下使用docker安装jenkins
1、拉取最新的jenkins镜像
docker pull jenkins/jenkins
2、创建jenkins工作目录并授权,可以根据需要自行调整目录路径
mkdir -p /data/jenkins_home/
chown 777 /data/jenkins_home/
3、创建并启动Jenkins容器
docker run -d --name jenkins -p 9666:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
参数说明:
-d 后台运行镜像
–name myjenkins 容器别名
-p 9666:8080 将镜像的8080端口映射到服务器的9666端口。
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
-v /data/jenkins_home:/var/jenkins_home 其中/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置。
4、查看jenkins是否启动成功,如果status为up则表示启动成功
docker ps -l
5、访问jenkins地址,ip修改为服务器ip,端口改为容器8080端口映射到服务器的9666端口,第一次访问会要求输入在服务器指定文件中的管理员密码
123.123.123.123:9666
6、选择"install suggested plugins"安装建议的插件即可,如有特殊需要可以选择"select plugins to install",然后等待插件安装完成
插件安装完成后,接下来设置管理员账户和密码,然后设置jenkins访问url,设置完成后就可以正常使用jenkins了
Docker 安装Jenkins
Jenkins官方网址:https://jenkins.io/
dockerHub官方网址:https://hub.docker.com/
Jenkins社区版镜像:https://github.com/jenkinsci/docker/blob/master/README.md
一、使用docker search命令搜索Jenkins镜像
localhost:~ piao$ docker search jenkins
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jenkins Official Jenkins Docker image 4768 [OK]
jenkins/jenkins The leading open source automation server 2035
jenkinsci/blueocean https://jenkins.io/projects/blueocean 516
jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 382
jenkins/jnlp-slave a Jenkins agent which can connect to Jenkins… 127 [OK]
jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish conn… 124 [OK]
jenkinsci/slave Base Jenkins slave docker image 64 [OK]
jenkins/slave base image for a Jenkins Agent, which includ… 41 [OK]
jenkinsci/ssh-slave A Jenkins SSH Slave docker image 40 [OK]
cloudbees/jenkins-enterprise CloudBees Jenkins Enterprise (Rolling releas… 34 [OK]
jenkins/ssh-slave A Jenkins slave using SSH to establish conne… 29 [OK]
h1kkan/jenkins-docker Extended Jenkins docker image, bundled wi… 26
xmartlabs/jenkins-android Jenkins image for Android development. 26 [OK]
bitnami/jenkins Bitnami Docker Image for Jenkins 24 [OK]
openshift/jenkins-2-centos7 A Centos7 based Jenkins v2.x image for use w… 22
cloudbees/jenkins-operations-center CloudBees Jenkins Operation Center (Rolling … 14 [OK]
vfarcic/jenkins-swarm-agent Jenkins agent based on the Swarm plugin 8 [OK]
openshift/jenkins-slave-base-centos7 A Jenkins slave base image. DEPRECATED: see … 7
trion/jenkins-docker-client Jenkins CI server with docker client 5 [OK]
publicisworldwide/jenkins-slave Jenkins Slave based on Oracle Linux 5 [OK]
openshift/jenkins-1-centos7 DEPRECATED: A Centos7 based Jenkins v1.x ima… 4
ansibleplaybookbundle/jenkins-apb An APB which deploys Jenkins CI 1 [OK]
jameseckersall/jenkins docker-jenkins (based on openshift jenkins 2… 0 [OK]
mashape/jenkins Just a jenkins image with the AWS cli added … 0 [OK]
amazeeio/jenkins-slave A jenkins slave that connects to a master vi… 0 [OK]
这里需要注意,搜索到的第一个镜像jenkins是官方镜像,已经停止运维了,最新的都是2年前的。
我们这里使用第二个镜像jenkins/jenkins,这是jenkins社区版镜像,更新到现在。
二、docker pull拉取Jenkins镜像
localhost:~ piao$ docker pull jenkins/jenkins:lts
这里我们拉取的lts的版本,LTS (长期支持) 版本每12周从常规版本流中选择,作为该时间段的稳定版本。
三、docker run运行jenkins镜像
我们可以先输入docker images查看一下本地镜像库
localhost:~ piao$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts 5307ff34e221 13 days ago 648MB
这个时候我们看到本地有jenkins/jenkins:lts这个镜像文件,现在我们要运行它。
localhost:~ piao$ docker run -d -p 8086:8080 -p 50000:50000 -v /home/jenkins/data:/var/jenkins_home jenkins/jenkins:lts
-d 是指在后台运行
-p 是映射到宿主机的端口
-v 是数据卷挂载,因为容器销毁里面的数据会消失,所以我们在使用镜像的时候,都会把重要的数据挂载到宿主机上。
最后就是镜像名称。
运行成功后,我们会看到一长串的容器ID。
然后我们输入Jenkins访问地址:http://127.0.0.1:8086/
看到这个页面我们Jenkins就启动成了,接着我们就等待一段时间。
四、解锁Jenkins
这个时候我们可以使用docker命令进入Jenkins容器里面
localhost:~ piao$ docker exec -it c41c0fce6fdd /bin/bash
在Jenkins容器里面,我们需要根据Jenkins Web提示的内容输入以下命令查看密码。
jenkins@c41c0fce6fdd:/$ cat /var/jenkins_home/secrets/initialAdminPassword
f3bddd1bdc7e4be4ac4b4af4ac9b2068
复制密码f3bddd1bdc7e4be4ac4b4af4ac9b2068到网页上,点击继续然后等待一段时间。
五、下载推荐插件
这里我们选择安装推荐的插件就可以了。但是在点击之前我们需要注意!!!!
因为部分插件被墙了,需要FQ,所以我们这里需要设置国内的下载源。
关于下载Jenkins插件很慢请看这边文章:解决下载Jenkins插件很慢
现在系统正在下载插件,我们等待一会就好了。
六、设置Jenkins基础配置
最后我们看到这个页面安装完成了。
Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建、发布到仓库\并部署上线。
0. 前置条件
服务器安装docker,并启动docker swarm
注意docker启动时,需要开启tcp端口
1.Jenkins 安装
1.1 命令行启动:
安装比较简单,直接运行
docker run -p 8080:8080 -p 50000:50000 -d -v /home/jenkins-home-docker:/var/jenkins_home jenkins/jenkins:lts
运行后查看日志,获取token,打开ip:8080,输入token,安装常用插件
1.2 使用swarm集群管理工具
在services里,添加服务
2.Jenkins 插件安装
我们需要一些插件支持
- Docker plugin : 提供docker 构建和发布
- SSH plugin : 提供通过SSH在远程主机执行命令,用于部署服务
- maven plugin: 支持maven
系统管理-插件管理里进行安装即可。
2.1 docker 配置
“系统管理-系统设置-云” 里新增
注意docker host url需要加上tcp://
2.2 ssh主机 配置
“系统管理-系统设置-SSH remote hosts” 里配置SSH远程主机
2.3 配置下email
在系统设置里直接设置,配置下smtp
2.4 配置jdk、maven
在系统管理-全局工具配置里设置JDK自动安装
maven同样配置即可
3.Jenkins 项目配置
3.1 新建项目
我们是maven项目,选择maven
3.2 配置源码管理
首先配置源码,可以是git或者svn,项目组用的是svn
3.3 配置触发器
配置自动构建,勾选POLL SCM,配置5分钟检查一次,当svn发生变化时,会自动启动构建
3.4 配置Build
简单的maven项目,构建使用pom.xml,执行package -DskipTests
3.5 配置Post Steps
Post Steps是指构建完成执行的步骤,我们会实现构建docker,发布docker和部署服务
3.5.1 配置docker
点击add post-build step,选择Build/publish docker image:
选择cloud为先前配置的docker-cloud,image填写私服发布地址,勾上push image。
这样配置,构建完成后会自动push到私服。
3.5.2 配置远程部署
我们使用docker stack来部署服务
首先,编写docker-compose.yml
version: "3"
services:
backend:
image: 192.168.86.8:5000/allinone-service-cicd
deploy:
replicas: 1
restart_policy:
condition: on-failure
ports:
- "8007:8006"
networks:
- webnet
networks:
webnet:
保存到docker服务器,比如/root/allinone/allinone-service/allinone目录
然后,添加post-build step:
选择配置好的远程docker主机:
填入命令:
cd /root/allinone/allinone-service/allinone
docker stack down allinone-cicd
docker stack deploy -c docker-compose.yml allinone-cicd
- docker stack down 将原先服务下线
- docker stack deploy -c 重新部署服务
4 开始构建
4.1 手动构建
回到工程,点击立即构建,第一次构建会自动下载jdk,maven,会比较慢
等待一会,构建成功:
9e70992ebc17: Pushing [===============================================> ] 42.66MB/45.02MB
9e70992ebc17: Pushing [=================================================> ] 44.96MB/45.02MB
9e70992ebc17: Pushing [==================================================>] 45.02MB
9e70992ebc17: Pushed
latest: digest: sha256:5df6c97d6173527bc92ddc436fcef063069cd1cd3d0da8a0c74d2238443ae4d6 size: 1582
Docker Build Done
[SSH] script:
cd /root/allinone/allinone-service/allinone
docker stack down allinone-cicd
docker stack deploy -c docker-compose.yml allinone-cicd
[SSH] executing...
Removing service allinone-cicd_backend
Removing network allinone-cicd_webnet
Creating network allinone-cicd_webnet
Creating service allinone-cicd_backend
[SSH] completed
[SSH] exit-status: 0
Finished: SUCCESS
如果配置了邮件通知,会收到构建成功邮件。
4.2 自动构建
SVN提交一个变更,等几分钟,查看Subversion Polling Log,已经有记录了,发现已经自动构建了一个版本
完美!
作者:Jadepeng
出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目。这一节,我们继续扩展功能,增加对Nodejs的支持,实现nodejs项目构建、并打包成docker镜像和自动部署。
1. 配置Nodejs环境
1.1 安装nodejs插件
打开系统管理——管理插件——可选插件,搜索NodeJS,选择NodeJS Plugin安装
1.2 配置nodejs 版本
系统管理 —— 全局工具配置 —— NodeJS,选择安装nodejs,选择当前最新版本9.4,命名NodeJS 9.4。
2. 配置项目
2.1 新建项目
新建jenkins项目,选择自由项目,按前文说明配置好SVN、触发器。
在构建环境里,选择Provide Node & npm bin/ folder to PATH,选择我们配置的9.4版本nodejs
2.2 配置构建命令
一般是通过npm命令构建,我们选择增加构建步骤 —— Excute shell,输入构建命令:
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
cnpm install
cnpm run build
注意,这里为了构建更快,选择通过alias增加cnpm指令,指定使用淘宝的仓库。
2.3 构建docker镜像
由于我们构建出来的已经是可访问的资源了,放在dis目录,所以我们可以基于Nginx作为基础镜像。
编写DockerFile:
FROM Nginx
ADD ./dist /usr/share/Nginx/html
EXPOSE 80
然后,增加构建步骤,ADD build/publish docker image
设置image:192.168.86.8:5000/allinone-web-cicd
勾上push image,会自动push到192.168.86.8:5000仓库
2.4 自动部署镜像
和上文一样,这里继续使用ssh实现docker镜像部署。
增加构建步骤,Execute shell script on remote host using ssh:
选择docker swarm的manager机器,输入命令:
docker service rm allinone-web-cicd
docker service create --name allinone-web-cicd --replicas 1 --publish 10081:80 192.168.86.8:5000/allinone-web-cicd
这次,我们使用docker service来实现部署,先service rm掉老服务,然后create新服务。
3.测试构建
点击立即构建:
稍等片刻,就构建成功了;
[SSH] executing...
allinone-web-cicd
mj9dwq00ath03i05b8bfe5plx
overall progress: 0 out of 1 tasks
1/1:
overall progress: 0 out of 1 tasks
overall progress: 0 out of 1 tasks
overall progress: 0 out of 1 tasks
overall progress: 0 out of 1 tasks
overall progress: 0 out of 1 tasks
overall progress: 0 out of 1 tasks
overall progress: 1 out of 1 tasks
verify: Waiting 5 seconds to verify that tasks are stable...
verify: Waiting 5 seconds to verify that tasks are stable...
verify: Waiting 5 seconds to verify that tasks are stable...
verify: Waiting 5 seconds to verify that tasks are stable...
verify: Waiting 5 seconds to verify that tasks are stable...
verify: Waiting 4 seconds to verify that tasks are stable...
verify: Waiting 4 seconds to verify that tasks are stable...
verify: Waiting 4 seconds to verify that tasks are stable...
verify: Waiting 4 seconds to verify that tasks are stable...
verify: Waiting 4 seconds to verify that tasks are stable...
verify: Waiting 3 seconds to verify that tasks are stable...
verify: Waiting 3 seconds to verify that tasks are stable...
verify: Waiting 3 seconds to verify that tasks are stable...
verify: Waiting 3 seconds to verify that tasks are stable...
verify: Waiting 3 seconds to verify that tasks are stable...
verify: Waiting 2 seconds to verify that tasks are stable...
verify: Waiting 2 seconds to verify that tasks are stable...
verify: Waiting 2 seconds to verify that tasks are stable...
verify: Waiting 2 seconds to verify that tasks are stable...
verify: Waiting 2 seconds to verify that tasks are stable...
verify: Waiting 1 seconds to verify that tasks are stable...
verify: Waiting 1 seconds to verify that tasks are stable...
verify: Waiting 1 seconds to verify that tasks are stable...
verify: Waiting 1 seconds to verify that tasks are stable...
verify: Waiting 1 seconds to verify that tasks are stable...
verify: Service converged
[SSH] completed
[SSH] exit-status: 0
Finished: SUCCESS
这个时候,访问swarm集群的任一http://ip:10081,就可以看到效果了。
作者:Jadepeng
出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
关于docker安装jenkins并用docker部署net和docker 安装jenkins的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于CentOS7 环境下使用docker安装jenkins、Docker 安装Jenkins、Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境、Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目等相关内容,可以在本站寻找。
本文标签: