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


本文基於GitHub演示自動化部署,實際上你可以選擇任意的Git托管環境。
使用的模式:DooD(Docker-outside-of-Docker)。
本文所有內容均開源

鏈接

歡迎關注我的GitHub:

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

如果安裝插件非常慢,可使用鏡像:
上海大學鏡像

GitHub

配置Person AccessToken

創建一個倉庫

建議根目錄添加1個setup.sh,用於jenkins構建

配置Jenkins

  1. 為了做到自動化部署,在Jenkins的系統設置中找到GitHub Servers模塊,選擇secret text添加AccessToken為認證方式
  2. 在創建的Jenkins任務中,配置觸發器為GitHub hook trigger for GITScm polling
  3. 構建選擇執行 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!'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM