应无所住,而生其心
排名
1
文章
870
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

docker Jenkins发布.net core

6217人阅读 2021/8/6 12:20 总访问:5406534 评论:1 收藏:0 手机
分类: docker

拉取镜像:


由于本身Jenkins镜像没有.net core环境,所以我们拉取一个制作好的镜像,里边包含Jenkins环境和.net core3.1与5.0的环境以及git的环境。因为我们要使用docker下面的Jenkins来发布git上面的.net core项目,这些都是必须的。

  1. docker pull xsw2014/net-jenkins:1.0

安装完后查看镜像:

运行镜像:

  1. docker run -u root --rm -d -p 8000:8080 --name dotnetjenkins \
  2. -v /usr/bin/docker:/usr/bin/docker \
  3. -v /var/run/docker.sock:/var/run/docker.sock \
  4. -v /etc/sysconfig/docker:/etc/sysconfig/docker \
  5. -v /home/dockerVolumes2/jenkins_home:/var/jenkins_home \
  6. xsw2014/net-jenkins:1.0


这句话第1行意思是用8000映射docker里面8080端口如果你想外网访问的时候用1011那么就修改为1011:8080。

第2至第4行的意思是docker内部可以调用外部docker来进行打包,因为jenkins是在docker容器内那么容器内是没法再使用docker命令打包的,这个时候我们需要第二至第四行的语句实现内部调用docker了。

第5行的意思为将本地的/home/dockerVolumes2/jenkins_home映射到/var/jenkins_home 。如果你后面dotnet publish了需要打包后的文件就可以到本地的/home/dockerVolumes2/jenkins_home查看了

第6行是你拉取的镜像名,如果是你自己制作的换成你自己的就行了

然后进入容器看看基础环境有没有:
docker exec -it 8d9d397631935f bin/sh

运行Jenkins:

输入你的ip加上我们映射的端口8000

使用命令查看初始化密码:

  1. //进入容器
  2. docker exec -it 8d9d397631935f bin/sh
  3. //进入到密码查看目录
  4. cd /var/jenkins_home/secrets/
  5. //显示当前文件夹下文件
  6. ls
  7. //显示initialAdminPassword内容
  8. cat initialAdminPassword

输入密码即可登录进去

登录进去就可以修改账户了,不然下次登录的默认账户是admin密码就是上面查看的


使用Jenkins创建一个自由风格的项目

点击New Item创建项目:

然后输入名字选择自由风格的项目,其他类型的项目装插件就能找到

在源代码管理中选择git

把你项目的url填写好,凭证的话如果是公共项目可以不填写。如果凭证填写有问题就会导致项目拉取不下来,这个在使用Jenkins发布的时候日志里边可以看到的。这里的git测试项目地址:https://github.com/aojiancc/DockerJenkinsTest 大家也可以直接用来测试。就是一个新建的core3.1 webapi的项目。

然后在构建里边选择shell命令构建,把命令写好

其实Jenkins最基础的核心就是:帮你拉取代码帮你执行发布命令而已。所以有时候如果jenkins发布有问题,那些命令你可以自己手动执行下试试,来找问题。当然jenkins还支持不同的分支发布到不同的环境,集群发布等,但基础的核心内容还是拉取项目和执行发布命令。

把使用的命令贴一下:

  1. dotnet restore
  2. dotnet build
  3. dotnet publish
  4. #输出一提示的话
  5. echo "Successfully^_^ ......................................................................................"
  6. #输出当前地址,可以在日志中看到当前路径,检查一些路径问题
  7. pwd
  8. #docker stop helloworldcontainer
  9. #docker rm helloworldcontainer
  10. #docker rmi hello-world
  11. #构建镜像命令
  12. docker build -t hello-world .
  13. #运行镜像
  14. docker run --name helloworldcontainer -p 5000:80 -d hello-world

然后点击存储然后构建即可。

如果没有默认构建一下我们自己手动点击构建

在项目里边也可以,菜单都一样的

如果一切正常编译成功的效果就是这样

我们可以看看日志:

前面都是拉取git项目的日志:

拉取完了后就是执行你编写的命令了:
还是很长的,带加号的都是我们执行的命令,日志记录还是非常详细的找错也比较方便。

这些命令都成功了,最后就是执行docker命令创建你发布的.net core项目的容器了

成功后输入你发布的.net core项目地址即可访问:
这样就搞定了

常见错误-dockerfile文件路径的问题

我们使用vs新建一个带有docker的项目,doockerfile文件的位置是和这些类文件一起的

这外面如果没有dockerfile按照上面的命令执行就会有路径问题:
以前我们讲没有使用jinkins,直接使用docker发布也会存在这种路径问题

执行报错,我们看看日志:

其实前面所有的步骤都执行成功了,就是找不到dockerfile的文件。其实我们在给命令的时候给了一个pwd查看当前目录的位置,就是方便看一下会不会存在路径的问题。这里我们可以根据看到当前的路径是:/var/jenkins_home/workspace/DockerJenkinsTest

  1. + pwd
  2. /var/jenkins_home/workspace/DockerJenkinsTest

这个位置根本就没有dockerfile应该还加入一次DockerJenkinsTest才可以。

所以可以在外面加一个dockerfile上传即可:

上传了github也能看到

然后重新执行一次发布,jinkins会自动去拉取更改

当然路径问题其实我们也可以通过修改命令或者dockerfile的内容来解决,还是很灵活的


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

Session

2023/6/28 18:49:58

收益匪浅

[good]

.net Windows服务发布、安装、卸载、监听脚本。服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

net core发布到IIS常见错误

net core发布到IIS遇到各种坑啊,一波三折很不容易才发布成功。记录一下,让来后人少坑一下处理程序aspNetCore在其模块列表...

解决iis无法发布问题iis应用程序池无法启动问题

iis无法发布应该是应用程序池没有被启动,而直接启动又无法启动。可以使用下面的步骤来解决1.使用cmd执行命令fsutil resour...

使用iisexpress发布项目

由于这台电脑太过于傲娇无法安装Iis,所以尝试使用iisexpress发布一下项目iisexpress虽然小巧但是功能还是挺强大的虽然使用...

net core项目发布到iis

需要的环境dotnet-sdk: 就是net core运行的环境dotnet-hosting:这个完整后,iis会出现一个模块,负责转发请求到真正的Kest...

iis发布项目的各种坑

首先最重要的是看看iis有没有装完整这些都勾上,不然由于没有装完整会有各种问题的比如:HTTP错误403.14-ForbiddenWeb服务...

wcf net.tcp 双向通讯,以及发布iis问题

一:新建wcf服务 UserCallBack.svc[ServiceContract(CallbackContract=typeof(ICallback))]//指定UserCallBack回调接口 pu...

自己的服务器发布项目遇到的坑傻瓜式教程

项目发布时在自己的服务器上可以访问 但是在外网上访问不了 这个时候需要去服务器控制台配置点东西第一步:第二步:第三步:第...

core 发布 Linux

包安装1.导入rpm源 sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm2.更新包 yu...

.net core发布gRPC项目和远程调用

发布gRPC项目的过程和其他项目一样,右键发布即可发布出来后会看到有个.exe的程序然后直接丢到服务器双击运行即可不放到iis...

发布.net core的grpc服务

发布.net core的grpc服务,很简单。把发布的文件复制到服务器后,不需要放到iis上面去了,只需要运行那个.exe文件即可

vs发布失败,卡在“正在准备配置文件…”解决方法

解决方法:1、找到项目路径下的 PropertiesPublishProfiles 文件夹。 然后就可以看到2、将文件夹内的所有内容删除。3、重新...

在windows 7下安装和设置IIS 发布Silverlight 站点

一:安装IIS Internet信息服务(IIS)7.5是Windows7提供的Web服务器软件。默认情况下,IIS并没有随Windows一起安装。 1、依...

vue脚手架项目发布

使用命令:npm run build即可我们在命令行中输入npm run build命令后,vue-cli会自动进行项目发布打包。你在package.json文...