TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
人生没有办法假设,我们不能站在后来的角度去责备当时无望、甚至是怯懦、犹豫的自己
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
118篇
.NET MVC
11篇
英语
3篇
随笔
82篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
149篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2023
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
docker Jenkins发布.net core
3518
人阅读
2021/8/6 12:20
总访问:
3514186
评论:
1
收藏:
0
手机
分类:
docker
###拉取镜像: tn5>由于本身Jenkins镜像没有.net core环境,所以我们拉取一个制作好的镜像,里边包含Jenkins环境和.net core3.1与5.0的环境以及git的环境。因为我们要使用docker下面的Jenkins来发布git上面的.net core项目,这些都是必须的。 ``` docker pull xsw2014/net-jenkins:1.0 ```  安装完后查看镜像:  ###运行镜像: ``` docker run -u root --rm -d -p 8000:8080 --name dotnetjenkins \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/sysconfig/docker:/etc/sysconfig/docker \ -v /home/dockerVolumes2/jenkins_home:/var/jenkins_home \ xsw2014/net-jenkins:1.0 ```  tn2>这句话第1行意思是用8000映射docker里面8080端口如果你想外网访问的时候用1011那么就修改为1011:8080。<br/> 第2至第4行的意思是docker内部可以调用外部docker来进行打包,因为jenkins是在docker容器内那么容器内是没法再使用docker命令打包的,这个时候我们需要第二至第四行的语句实现内部调用docker了。<br/> 第5行的意思为将本地的/home/dockerVolumes2/jenkins_home映射到/var/jenkins_home 。如果你后面dotnet publish了需要打包后的文件就可以到本地的/home/dockerVolumes2/jenkins_home查看了<br/> 第6行是你拉取的镜像名,如果是你自己制作的换成你自己的就行了 **然后进入容器看看基础环境有没有:** docker exec -it 8d9d397631935f bin/sh  ###运行Jenkins: >输入你的ip加上我们映射的端口8000  >使用命令查看初始化密码: ``` //进入容器 docker exec -it 8d9d397631935f bin/sh //进入到密码查看目录 cd /var/jenkins_home/secrets/ //显示当前文件夹下文件 ls //显示initialAdminPassword内容 cat initialAdminPassword ```  输入密码即可登录进去 >登录进去就可以修改账户了,不然下次登录的默认账户是admin密码就是上面查看的 <br/> ###使用Jenkins创建一个自由风格的项目 tn4#点击New Item创建项目:  tn4#然后输入名字选择自由风格的项目,其他类型的项目装插件就能找到  tn4#在源代码管理中选择git 把你项目的url填写好,凭证的话如果是公共项目可以不填写。如果凭证填写有问题就会导致项目拉取不下来,这个在使用Jenkins发布的时候日志里边可以看到的。这里的git测试项目地址:https://github.com/aojiancc/DockerJenkinsTest 大家也可以直接用来测试。就是一个新建的core3.1 webapi的项目。  tn4#然后在构建里边选择shell命令构建,把命令写好 其实Jenkins最基础的核心就是:帮你拉取代码帮你执行发布命令而已。所以有时候如果jenkins发布有问题,那些命令你可以自己手动执行下试试,来找问题。当然jenkins还支持不同的分支发布到不同的环境,集群发布等,但基础的核心内容还是拉取项目和执行发布命令。  把使用的命令贴一下: ``` dotnet restore dotnet build dotnet publish #输出一提示的话 echo "Successfully^_^ ......................................................................................" #输出当前地址,可以在日志中看到当前路径,检查一些路径问题 pwd #docker stop helloworldcontainer #docker rm helloworldcontainer #docker rmi hello-world #构建镜像命令 docker build -t hello-world . #运行镜像 docker run --name helloworldcontainer -p 5000:80 -d hello-world ``` 然后点击存储然后构建即可。 **如果没有默认构建一下我们自己手动点击构建**  在项目里边也可以,菜单都一样的  tn4#如果一切正常编译成功的效果就是这样  >**我们可以看看日志:**  **前面都是拉取git项目的日志:**  **拉取完了后就是执行你编写的命令了:** 还是很长的,带加号的都是我们执行的命令,日志记录还是非常详细的找错也比较方便。  **这些命令都成功了,最后就是执行docker命令创建你发布的.net core项目的容器了**  **成功后输入你发布的.net core项目地址即可访问:** 这样就搞定了  ###常见错误-dockerfile文件路径的问题 我们使用vs新建一个带有docker的项目,doockerfile文件的位置是和这些类文件一起的  这外面如果没有dockerfile按照上面的命令执行就会有路径问题: 以前我们讲没有使用jinkins,直接使用docker发布也会存在这种路径问题  **执行报错,我们看看日志:**  其实前面所有的步骤都执行成功了,就是找不到dockerfile的文件。其实我们在给命令的时候给了一个pwd查看当前目录的位置,就是方便看一下会不会存在路径的问题。这里我们可以根据看到当前的路径是:/var/jenkins_home/workspace/DockerJenkinsTest ``` + pwd /var/jenkins_home/workspace/DockerJenkinsTest ``` 这个位置根本就没有dockerfile应该还加入一次DockerJenkinsTest才可以。 所以可以在外面加一个dockerfile上传即可:  上传了github也能看到  然后重新执行一次发布,jinkins会自动去拉取更改  当然路径问题其实我们也可以通过修改命令或者dockerfile的内容来解决,还是很灵活的 
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}