71.docker-image-build.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. set -e
  2. #---------------------------------------------------------------------
  3. #(x.1)参数
  4. args_="
  5. export codePath=/root/temp/svn
  6. export DOCKER_USERNAME=serset
  7. export DOCKER_PASSWORD=xxx
  8. # "
  9. #---------------------------------------------------------------------
  10. #(x.2)docker-初始化多架构构建器
  11. #启用 buildx 插件
  12. export DOCKER_CLI_EXPERIMENTAL=enabled
  13. #验证是否开启
  14. docker buildx version
  15. #启用 binfmt_misc
  16. docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
  17. #验证是 binfmt_misc 否开启
  18. ls -al /proc/sys/fs/binfmt_misc/
  19. #创建一个新的构建器
  20. docker buildx create --use --name mybuilder
  21. #启动构建器
  22. docker buildx inspect mybuilder --bootstrap
  23. #查看当前使用的构建器及构建器支持的 CPU 架构,可以看到支持很多 CPU 架构:
  24. docker buildx ls
  25. #---------------------------------------------------------------------
  26. #(x.3)docker-构建多架构镜像( arm、arm64 和 amd64 )并推送到 Docker Hub
  27. docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
  28. dockerPath=$codePath/Publish/release/release/docker-image
  29. for dockerName in `ls $dockerPath`
  30. do
  31. if [ -d $dockerPath/$dockerName ]
  32. then
  33. echo "docker build $dockerName"
  34. #docker buildx build $dockerPath/$dockerName -t $DOCKER_USERNAME/$dockerName:$version -t $DOCKER_USERNAME/$dockerName --platform=linux/amd64,linux/arm64,linux/arm/v7 --push
  35. fi
  36. done