首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker Jenkins ASP.NET Core自动化部署

来源:Never、C

cnblogs.com/neverc/p/8944732.html

本文基于GitHub演示自动化部署,实际上你可以选择任意的Git托管环境。

使用的模式:DooD(Docker-outside-of-Docker)。

本文所有内容均开源

链接

欢迎关注我的GitHub:

neverc/netcore-jenkins(由于是半年前构建的,sdk版本为dotnet sdk:2.0)(https://hub.docker.com/r/neverc/netcore-jenkins/)

NeverCL/netcore-jenkins(上传docker hub上的源码)(https://github.com/NeverCL/netcore-jenkins)

NeverCL/jenkins-demo(https://github.com/NeverCL/jenkins-demo/)

Jenkins安装

启动基于dotnet的jenkins:

docker run --name my-jenkins -P \

-e TZ='Asia/Shanghai' \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /var/jenkins_home:/var/jenkins_home \

-d neverc/netcore-jenkins

docker exec -it my-jenkins cat /var/jenkins_home/secrets/initialAdminPassword // 查看jenkins的初始化密码,当然你可以去掉docker exec -it my-jenkins

安装的必选插件:Git GitHub Integration。

如果安装插件非常慢,可使用镜像:

上海大学镜像(http://mirrors.shu.edu.cn/jenkins/updates/update-center.json)

GitHub

配置Person AccessToken

创建一个仓库

建议根目录添加1个setup.sh,用于jenkins构建

配置Jenkins

为了做到自动化部署,在Jenkins的系统设置中找到GitHub Servers模块,选择secret text添加AccessToken为认证方式

在创建的Jenkins任务中,配置触发器为GitHub hook trigger for GITScm polling

构建选择执行 shell:bash ./setup.sh

可参考的内容

Dockerfile

FROM microsoft/aspnetcore

WORKDIR /app

ENV ASPNETCORE_URLS http://*:5000

EXPOSE 5000

COPY ./publish /app

CMD ["dotnet", "jenkins-demo.dll"]

执行shell

echo 'start'

# variables

echo 'variables:'

GITHASH=`git rev-parse --short HEAD`

IMGNAME=netcore-demo

CONTAINER=netcore-demo-web

# publish

echo 'publish:'

rm -rf ./publish

dotnet publish -o ./publish

# image

echo 'image:'

docker build -t $IMGNAME:$GITHASH .

docker tag $IMGNAME:$GITHASH $IMGNAME:latest

docker rmi -f $(docker images -q -f dangling=true)

# container

echo 'container:'

docker stop $CONTAINER || true && docker rm -f $CONTAINER || true

docker run -d --name $CONTAINER $IMGNAME

echo 'done!'

看完本文有收获?请转发分享给更多人

关注「DotNet」,提升.Net技能

淘口令:复制以下红色内容,再打开手淘即可购买

范品社,使用¥极客T恤¥抢先预览(长按复制整段文案,打开手机淘宝即可进入活动内容)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180527B0J1F800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券