build.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. # Copyright The OpenTelemetry Authors
  3. # SPDX-License-Identifier: Apache-2.0
  4. set -o errexit
  5. set -o nounset
  6. set -o pipefail
  7. Help()
  8. {
  9. # Display Help
  10. echo "Add description of the script functions here."
  11. echo
  12. echo "Syntax: scriptTemplate [-b|o|g|j]"
  13. echo "options:"
  14. echo "b Base image"
  15. echo "o OpenTelemetry-cpp git tag"
  16. echo "h Print Help."
  17. echo "g gRPC git tag"
  18. echo "j Parallel jobs"
  19. echo
  20. echo "how to use:"
  21. echo
  22. echo "docker create -ti --name otel otel-cpp-<base_image> bash"
  23. echo "docker cp otel:/ ./"
  24. echo "docker rm -f otel"
  25. echo
  26. echo "or:"
  27. echo
  28. echo "COPY --from=otel-cpp-<base_image> /usr"
  29. }
  30. base_image=${base_image:="alpine"}
  31. grpc_git_tag=${grpc_git_tag:="v1.43.2"}
  32. otel_git_tag=${otel_git_tag:="v1.3.0"}
  33. cores=${cores:=1}
  34. while getopts ":h:b:o:g:j:" option; do
  35. case $option in
  36. h) # display Help
  37. Help
  38. exit;;
  39. b) # base image
  40. base_image=$OPTARG
  41. ;;
  42. o) # OpenTelemetry-cpp git tag
  43. otel_git_tag=$OPTARG
  44. ;;
  45. g) # gRPC git tag
  46. grpc_git_tag=$OPTARG
  47. ;;
  48. j) # number of cores
  49. cores=$OPTARG
  50. ;;
  51. \?)
  52. Help
  53. exit;;
  54. esac
  55. done
  56. docker build -t base-${base_image}-dev -f Dockerfile.${base_image}.base .
  57. pushd grpc/
  58. docker build --build-arg BASE_IMAGE=base-${base_image}-dev \
  59. --build-arg GRPC_GIT_TAG=${grpc_git_tag} \
  60. --build-arg CORES=${cores} \
  61. -t grpc-${base_image} -f Dockerfile .
  62. popd
  63. docker build --build-arg BASE_IMAGE=${base_image} \
  64. --build-arg CORES=${cores} \
  65. --build-arg OTEL_GIT_TAG=${otel_git_tag} \
  66. -t otel-cpp-${base_image} -f Dockerfile .