50.docker-build.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. set -e
  2. #---------------------------------------------------------------------
  3. #(x.1)参数
  4. args_="
  5. export codePath=/root/docker/jenkins/workspace/sqler/svn
  6. export version=`grep '<Version>' ${codePath} -r --include *.csproj | grep -oP '>(.*)<' | tr -d '<>'`
  7. export DOCKER_USERNAME=serset
  8. export DOCKER_PASSWORD=xxx
  9. # "
  10. publishPath=${codePath}/dotnet/Doc/Publish
  11. netVersion=net6.0
  12. #---------------------------------------------------------------------
  13. echo "(x.2)dotnet-构建项目文件"
  14. echo "copy SersDocker
  15. cp -rf "$codePath/Doc/PublishFile/SersDocker/." "$codePath/Doc/Publish/SersDocker"
  16. echo "copy sers"
  17. cp -rf "$codePath/Doc/SersPublish/$netVersion/ServiceCenter/appsettings.json" "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers"
  18. cp -rf "$codePath/Doc/SersPublish/$netVersion/ServiceCenter/." "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers/app"
  19. echo "copy sers-demo"
  20. cp -rf "$codePath/Doc/SersPublish/$netVersion/Demo/appsettings.json" "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-demo"
  21. cp -rf "$codePath/Doc/SersPublish/$netVersion/Demo/." "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-demo/app"
  22. echo "copy sers-demo-robot"
  23. cp -rf "$codePath/Doc/SersPublish/$netVersion/Robot/appsettings.json" "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-demo-robot"
  24. cp -rf "$codePath/Doc/SersPublish/$netVersion/Robot/." "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-demo-robot/app"
  25. echo "copy sers-gateway"
  26. cp -rf "$codePath/Doc/SersPublish/$netVersion/Gateway/appsettings.json" "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-gateway"
  27. cp -rf "$codePath/Doc/SersPublish/$netVersion/Gateway/." "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-gateway/app"
  28. echo "copy sers-gover"
  29. cp -rf "$codePath/Doc/SersPublish/$netVersion/Gover/appsettings.json" "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-gover"
  30. cp -rf "$codePath/Doc/SersPublish/$netVersion/Gover/." "$codePath/Doc/Publish/SersDocker/docker部署Sers/sers-gover/app"
  31. echo "copy sers-demo-sersall"
  32. xcopy "Sers压测\sers压测-单体压测%netVersion%\ServiceCenter\appsettings.json" "SersDocker\docker部署Sers\sers-demo-sersall"
  33. xcopy "Sers压测\sers压测-单体压测%netVersion%\ServiceCenter" "SersDocker\docker制作镜像Sers\sers-demo-sersall\app" /e /i /r /y
  34. #---------------------------------------------------------------------
  35. #(x.3.1)docker-初始化多架构构建器
  36. #启用 buildx 插件
  37. export DOCKER_CLI_EXPERIMENTAL=enabled
  38. #验证是否开启
  39. docker buildx version
  40. #启用 binfmt_misc
  41. docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
  42. #验证是 binfmt_misc 否开启
  43. ls -al /proc/sys/fs/binfmt_misc/
  44. #创建一个新的构建器
  45. docker buildx create --use --name mybuilder
  46. #启动构建器
  47. docker buildx inspect mybuilder --bootstrap
  48. #查看当前使用的构建器及构建器支持的 CPU 架构,可以看到支持很多 CPU 架构:
  49. docker buildx ls
  50. #---------------------------------------------------------------------
  51. #(x.3.2)docker-构建多架构镜像( arm、arm64 和 amd64 )并推送到 Docker Hub
  52. docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
  53. docker buildx build $codePath/Publish/06.Docker/制作镜像/$name -t $DOCKER_USERNAME/$name:$version -t $DOCKER_USERNAME/$name --platform=linux/amd64,linux/arm64,linux/arm/v7 --push