Docker中安装Jenkins实时发布.net core 项目
- 防坑点
- 升级docker
- jenkins运行
- 运行命令
- jenkins拉取git并构建项目
- 其他
- 查看发布文件
防坑点
升级docker
首先我们要确认我们在liunx安装的不是1.31.1的docker容器不然在后面的运行中会报错
can not open /etc/sysconfig/docker
如果你是liunx下通过yum安装的docker并且版本为1.31.1
请先按照下述步骤升级docker至1.80以上版本再运行实例(此步骤不会删除容器和镜像放心升级)
//停止docker服务
service docker stop//查询已经安装的docker实例
yum list installed | grep docker//卸载安装实例
yum remove docker.x86_64//卸载安装实例
yum remove docker-client.x86_64//卸载安装实例
yum remove docker-common.x86_64
卸载完成后执行
使用curl安装最新版
curl -fsSL https://get.docker.com/ | sh重启Docker
systemctl restart docker设置Docker开机自启
systemctl enable docker
我们查看版本已经是最新的2.0了
jenkins运行
运行命令
这里我们可以开始jenkins构建了
我们首先执行命令:
docker run -u root --rm -d -p 8080:8080 --name dotnetjenkins2 \
-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
这句话第一行意思是用8080映射docker里面8080端口如果你想外网访问的时候用5050那么就修改为
5050:8080第二至第四行的意思是docker内部可以调用外部docker来进行打包,这是什么意思呢
应为jenkins实在docker容器内那么容器内是没法再使用docker命令打包的这个时候我们需要
第二至第四行的语句实现内部调用docker了第五行的意思为将本地的/home/dockerVolumes2/jenkins_home映射到/var/jenkins_home
如果你后面dotnet publish了需要打包后的文件就可以到本地的/home/dockerVolumes2/jenkins_home查看了第六行是使用xsw2014/net-jenkins:1.0这个镜像如果你的不是这个镜像或者前面你按照你自己的构建的请将这里换成自己的
运行后我们可以进入容器内部查看sdk和docker git都可以 运行的
jenkins拉取git并构建项目
我们选择一个自由风格的软件项目来构建
我们选择git并在下面add输入登录账号和密码
测试源码地址:
https://gitee.com/ntr1996/dockertest.git
在最下面选择执行shell命令构建
命令如下
dotnet restore
dotnet build
dotnet publish
echo "Successfully!!!! ^ please see the file ."
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
其中
dotnet restore 重新生成项目
dotnet build 重新构建项目
dotnet publish 打包项目
echo "Successfully!!!! ^ please see the file ." 打包成功输出Successfully
pwd 输出当前所在文件夹位置#docker stop helloworldcontainer 停止容器 第一次请注释第二次放开注释
#docker rm helloworldcontainer 删除容器 第一次请注释第二次放开注释
#docker rmi hello-world 删除镜像 第一次请注释第二次放开注释docker build -t hello-world . 通过dodckerfile打包镜像注意最后有一个英文的小点
docker run --name helloworldcontainer -p 5000:80 -d hello-world 运行容器
然后我们点击build now 就开始构建了
最后我们通过网址访问
http://114.117.168.70:5000/weatherforecast
其他
查看发布文件
有时候我们需要发布后的文件那肿么办呢
我们可以按下面来找到发布文件
docker run -u root --rm -d -p 8080:8080 --name dotnetjenkins2 \
-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
因为我们上述启动命令为-v /home/dockerVolumes2/jenkins_home:/var/jenkins_home
我们进入到 /home/dockerVolumes2/jenkins_home
cd /home/dockerVolumes2/jenkins_home
再进入workspace
cd workspace
进入和我们jenkins创建同名的文件夹下
cd /dotnettest/dockertest/bin/Debug/netcoreapp3.1/publish
如果你先打包的时候都压缩成一个压缩包可以在上述内容中添加一条压缩命令这里我就不写了