Нема описа

build-image.sh 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #!/bin/bash
  2. # Wazuh package generator
  3. # Copyright (C) 2023, Wazuh Inc.
  4. #
  5. # This program is a free software; you can redistribute it
  6. # and/or modify it under the terms of the GNU General Public
  7. # License (version 2) as published by the FSF - Free Software
  8. # Foundation.
  9. WAZUH_CERTS_IMAGE_VERSION="0.0.4"
  10. WAZUH_REGISTRY="docker.io"
  11. # -----------------------------------------------------------------------------
  12. trap ctrl_c INT
  13. clean() {
  14. exit_code=$1
  15. exit ${exit_code}
  16. }
  17. ctrl_c() {
  18. clean 1
  19. }
  20. # -----------------------------------------------------------------------------
  21. build() {
  22. IMAGE_TAG="${WAZUH_CERTS_IMAGE_VERSION}"
  23. echo WAZUH_REGISTRY=$WAZUH_REGISTRY > .env
  24. echo IMAGE_TAG=$IMAGE_TAG >> .env
  25. set -a
  26. source .env
  27. set +a
  28. if [ "${MULTIARCH}" ]; then
  29. docker buildx bake \
  30. --file build-image.yml \
  31. --set *.platform=linux/amd64,linux/arm64 \
  32. --push \
  33. --no-cache || clean 1
  34. else
  35. docker buildx bake \
  36. --file build-image.yml \
  37. --load \
  38. --no-cache || clean 1
  39. fi
  40. return 0
  41. }
  42. # -----------------------------------------------------------------------------
  43. help() {
  44. echo
  45. echo "Usage: $0 [OPTIONS]"
  46. echo
  47. echo " -v, --version <ver> [Optional] Set the image version. By default ${WAZUH_CERTS_IMAGE_VERSION}."
  48. echo " -rg, --registry <reg> [Optional] Set the Docker registry to push the images."
  49. echo " -m, --multiarch [Optional] Enable multi-architecture builds."
  50. echo " -h, --help Show this help."
  51. echo
  52. exit $1
  53. }
  54. # -----------------------------------------------------------------------------
  55. main() {
  56. while [ -n "${1}" ]
  57. do
  58. case "${1}" in
  59. "-h"|"--help")
  60. help 0
  61. ;;
  62. "-m"|"--multiarch")
  63. MULTIARCH="true"
  64. shift
  65. ;;
  66. "-rg"|"--registry")
  67. if [ -n "${2}" ]; then
  68. WAZUH_REGISTRY="${2}"
  69. shift 2
  70. else
  71. help 1
  72. fi
  73. ;;
  74. "-v"|"--version")
  75. if [ -n "$2" ]; then
  76. WAZUH_CERTS_IMAGE_VERSION="$2"
  77. shift 2
  78. else
  79. help 1
  80. fi
  81. ;;
  82. *)
  83. help 1
  84. esac
  85. done
  86. build || clean 1
  87. clean 0
  88. }
  89. main "$@"