Docker中使用Jenkins(3)
一、前言
上一文章介绍了docker-compose,本文介绍Jenkins自动化部署。
二、Jenkins
dockerfile文件切记右键属性复制到输出目录调整为:如果较新则复制,否则在publish时无法将dockerfile文件发布 //2020-11-5 17:30分增加
拉取Jenkins镜像
docker pull jenkins/blueocean
但是这样是有问题的,因为jenkins的docker版本本身没有dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins的Docker的Container,
所以我们就先创建一个包含dotnetcore的自定义Jenkins镜像吧,已经有人创建好了,直接使用
docker run -u root --rm -d -p 8080:8080 --name jenkins2 \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/dockerVolumes2/jenkins_home:/var/jenkins_home \
laozhangisphi/dnt-docker-jenkins
第一行表示启动一个容器名为Jenkins2的对外开放3001端口实例。
第二行表示将宿主机上面的docker命令行工具挂载到容器中,使jenkins用户能够执行docker命令。
第三行表示将宿主机上的docker.sock挂载到容器中的相应位置,使得容器中的dockercli能跟宿主机的docker通信。
第四行表示挂载我们创建的配置文件存放目录到指定的文件夹。
启动好了以后,就可以浏览器里正常的访问{ip}:8080端口了。
我们从页面也能看到,这里为了安全,需要一个超级管理员的密码,地址,就是在我们上边配置的文件夹下的文件里,请注意,这个文件夹是在容器里的,不是在我们的宿主机的,可以使用命令来查看:
在挂载目录下initialAdminPassword文件查看密码
这里首先可以左下角,看到Jenkins的版本,然后中间是两个选项,用来安装插件的,左边是默认常用的一些,右侧的是你可以自定义的一些插件,我们直接点击左侧的即可。
如果在安装插件的过程中,报错了,不用慌,你可以处理好,然后继续再执行一遍的,就算是Retry以后还不行,也可以Continue,安装好后,我们依然可以自定义安装插件:
安装插件后,没有问题,会跳转到用户配置页面,都是必填项。
当然,如果系统管理里有错误,我们可以手动安装和修改:
创建自由风格的软件项目
添加源代码管理
构建触发器 两分钟检测一次代码是否有更新
构建命令
#!/bin/bash -il dotnet restore
dotnet build
dotnet publish cd /var/jenkins_home/workspace/WebTest/WebApplication2/bin/Debug/netcoreapp3.1/publish/
docker stop webtestcontainer
docker rm webtestcontainer
docker rmi webtest
docker build -t webtest .
docker run --name webtestcontainer -d -p 9000:80 webtest
保存 构建项目
然后就可以看到#18的构建状态变成了蓝色,如果报错是红色的。
如果有错误,你可以在控制台输出上看到内容。
到此jenkins的介绍就结束了,下一篇文章将介绍docker中的nginx代理。
Docker中使用Jenkins(3)的更多相关文章
- CentOS7下Docker中构建Jenkins容器
背景 在CentOS搭建Docker完成后,我们需要在Docker中搭建Jenkins用来实现工程自动部署. 安装前提 jdk已安装,安装目录如:usr/java/jdk1.8.0_161 maven ...
- 在docker中运行jenkins实现代码自动发布到测试服务器
在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...
- docker中搭建jenkins环境
想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...
- Docker中完成Jenkins的安装
去年就开始学习采用Docker+Jenkins+.Net Core搭建生成式流水线,一直拖到现在,也没有彻底的好好静下来去总结总结.趁着现在对自己的严格要求下,逐渐开始重视自我总结,以此来巩固逐渐失去 ...
- docker中安装Jenkins
1.获取Jenkins镜像(不要直接docker pull jenkin,这样获取的不是最新的版本,后续安装部分插件会不成功) docker pull jenkins/jenkins 创建文件夹 su ...
- 在Docker中自定义Jenkins镜像
一. 构建Jenkins slave. 1. 构建镜像需要三个步骤: (1) 创建Dockerfile (2) 构建镜像 (3)在master上改变agent的配置 2. 以下是创建一个服务Pytho ...
- Selenium4+Python3系列(十三) - 与docker中的jenkins持续集成
前言 文章更新到这一篇时,其实我还是很开心的,因为这也正是这系列教程的最后一篇文章,也算是完成了一个阶段性的小目标,也很感谢那些愿意看我文章与我交流学习的同学,感谢有你们的支持和陪伴. Jenkins ...
- mac通过docker一键部署Jenkins
目录 mac通过docker一键部署Jenkins 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.下载脚本 1.2.安装程序 1.2.1.安装程序详情 1 ...
- Ubuntu中实现Docker内安装jenkins+jenkins远程触发
前面做了在ubuntu中安装jenkins+docker实现自动部署,但是得安装jdk8+tomcat8环境,比较麻烦,因此本文记录如何将jenkins直接装在dockers内并且实现远程触发功能. ...
- Ubuntu中安装jenkins+docker,实现项目部署
本人对于linux系统是个小白,恰逢公司新框架需要docker+jenkins部署项目,所以通过同事口述+一顿乱查,终于实现在虚拟机上搭建的ubuntu系统中 实现jenkins +docker 自动 ...
随机推荐
- last-child可能你也会踩的坑
旧文章从语雀迁移过来,原日期为2021-07-14 问题 当时写在写一个列表,列表每一项需要下面加下划线,最后一项不加下划线.第一时间,想到使用 :``last-child 这个伪类来实现. 当时的代 ...
- 痞子衡嵌入式:Farewell, 我的写博故事2022
-- 题图:苏州荷塘月色 2022 年的最后一天,写个年终总结.困扰大家三年之久的新冠疫情终于在 12 月全面放开了,痞子衡暂时还没有阳,计划坚持到总决赛.对于 2023 年,痞子衡还是充满期待的,慢 ...
- Http请求接口
方法一.使用springboot框间自带的Http的工具类RestTemplate. RestTemplate为springframework中自带的处理Http的工具类. 具体用法 请求的接口 @R ...
- tempdb大量闩锁等待问题分析
背景 客户业务系统升级后,高峰期运行缓慢,在SQL专家云上看到数据库出现严重等待,需要分析原因并紧急处理. 现象 登录到SQL专家云中,进入实时可视化页面,在活动会话里面看到有大量资源等待的会话. ...
- uniapp 开发微信小程序问题笔记
最近接手了一个小程序开发,从头开始.使用了 uniapp 搭建,以前没有做过小程序开发,着手看文档.查文档.一步一步完成了任务的开发.特此记录开发过程中的问题. 开发建议: 使用 HBuilderX ...
- 刷题笔记——2758.打印ASCII码 & 2759.打印字符
题目 2758.打印ASCII码 2759.打印字符 代码 while True: try: a = input() print(ord(a)) except: break while True: t ...
- NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)
NLP知识图谱项目合集(信息抽取.文本分类.图神经网络.性能优化等) 这段时间完成了很多大大小小的小项目,现在做一个整体归纳方便学习和收藏,有利于持续学习. 1. 信息抽取项目合集 1.PaddleN ...
- vue3 | shallowReactive 、shallowRef、triggerRef
shallowReactive 使用 reactive 声明的变量为递归监听,使用 shallowReactive 声明的变量为非递归监听(通俗的讲就是 reactive 创建的对象将会被 vue 内 ...
- vue学习笔记(一)---- vue指令( v-on 事件绑定 )
Vue 中提供了 v-on: 事件绑定机制 绑定的事件处理函数必须定义到vm实例的事件处理函数 methods 中去 <div id="app"> <!-- &l ...
- python线程池等待全部任务结束再继续
import json import time from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED impor ...