【.NET Core】Docker Jenkins ASP.NET Core自动化部署

本文基于GitHub演示自动化部署,实际上你能够选择任意的Git托管环境。
使用的模式:DooD(Docker-outside-of-Docker)。
本文全部内容均开源git

连接

欢迎关注个人GitHub:github

Jenkins安装

启动基于dotnet的jenkins:web

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-jenkinsdocker

安装的必选插件:Git GitHub Integrationshell

若是安装插件很是慢,可以使用镜像:
上海大学镜像json

GitHub

配置Person AccessToken

建立一个仓库

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

配置Jenkins

  1. 为了作到自动化部署,在Jenkins的系统设置中找到GitHub Servers模块,选择secret text添加AccessToken为认证方式
  2. 在建立的Jenkins任务中,配置触发器为GitHub hook trigger for GITScm polling
  3. 构建选择执行 shell:bash ./setup.sh

可参考的内容

Dockerfileapp

FROM microsoft/aspnetcore
WORKDIR /app
ENV ASPNETCORE_URLS http://*:5000
EXPOSE 5000
COPY ./publish /app
CMD ["dotnet", "jenkins-demo.dll"]

执行shellide

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!'
相关文章
相关标签/搜索