Asp.Net Core + Jenkins + Docker 自动构建

1、先新建一个Asp.Net Core项目

 2、提交代码到Git仓库(推荐用Gitee 码云,因为私人仓库免费)

此处省略若干步:安装Git,安装TortoiseGit,注册码云账号,用putty生成私钥公钥,在码云配置....,用TortoiseGit提交代码...(TortoiseGit非必须,仅仅是因为习惯了鼠标操作...)

3、安装docker

#一键安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

#配置阿里云镜像加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://oljgwa1c.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
4、安装Jenkins
这里需要特别说明的是,因为我们要在docker中的jenkins中编译asp.net core的程序,所以需要在docker中加入.net sdk
先编辑Dockerfile
FROM jenkins/jenkins:lts-centos
USER root
#注册Microsoft密钥和源
RUN rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
#安装.Net Core SDK
RUN yum install dotnet-sdk-3.1 -y
RUN usermod -a -G root jenkins
USER jenkins

 运行容器

docker run \
-d --restart=always \
-p 8080:8080 \
--name jenkins \
--user root \
 -v /mnt/jenkins_home:/var/jenkins_home \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v $(which docker):/usr/bin/docker \
 jenkins/jenkins:lts-alpine

#国内访问jenkins插件库真是太慢了,所以务必装Localization: Chinese (Simplified)

  

  使用后设置更新中心地址为国内地址

  #设置jenkins的时区

右上角-操作员-Configure-User Defined Time Zone
设置为Asia/Chongqing
#下载Gitee插件
#配置Gitee

 


 具体配置方法参考:https://gitee.com/help/articles/4193#article-header0

5、新建自由风格的软件项目

源码管理选Git

 

特别注意的是。。。这里的凭据不是上面gitee配置的那个。。。要重新配一个账号密码的 

配置抓取源码规则

6、编译发布

 

 dotnet publish -c Release -o ${WORKSPACE}/published

7、生成docker镜像

先在工程中加入Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 as runtime
WORKDIR /Web
COPY ./published ./
EXPOSE 80
ENTRYPOINT ["dotnet", "test.dll","--urls=http://*:80"]

8、打包成docker文件

docker build -t registry.cn-hangzhou.aliyuncs.com/{youname}/{projectname} .

9、推送到docker仓库

10、服务器拉取镜像并部署

 

posted @ 2020-04-11 14:53  永远的地平线  阅读(374)  评论(0)    收藏  举报