


拉取镜像:
由于本身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
这句话第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
使用命令查看初始化密码:
//进入容器
docker exec -it 8d9d397631935f bin/sh
//进入到密码查看目录
cd /var/jenkins_home/secrets/
//显示当前文件夹下文件
ls
//显示initialAdminPassword内容
cat initialAdminPassword
输入密码即可登录进去
登录进去就可以修改账户了,不然下次登录的默认账户是admin密码就是上面查看的
使用Jenkins创建一个自由风格的项目
点击New Item创建项目:
然后输入名字选择自由风格的项目,其他类型的项目装插件就能找到
在源代码管理中选择git
把你项目的url填写好,凭证的话如果是公共项目可以不填写。如果凭证填写有问题就会导致项目拉取不下来,这个在使用Jenkins发布的时候日志里边可以看到的。这里的git测试项目地址:https://github.com/aojiancc/DockerJenkinsTest 大家也可以直接用来测试。就是一个新建的core3.1 webapi的项目。
然后在构建里边选择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
然后点击存储然后构建即可。
如果没有默认构建一下我们自己手动点击构建
在项目里边也可以,菜单都一样的
如果一切正常编译成功的效果就是这样
我们可以看看日志:
前面都是拉取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。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)