70.docker-build.sh 3.3 KB

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