Advertisement
Guest User

Untitled

a guest
Dec 30th, 2020
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. DOCKER_EXT_LIST=()
  5. PECL_EXT_LIST=()
  6.  
  7. function implode {
  8. local IFS="$1";
  9. shift;
  10. echo "$*";
  11. }
  12.  
  13. function select_composer {
  14. echo "[ext-install.sh] Selecting composer"
  15.  
  16. apt-get install -yq unzip
  17. curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  18. }
  19.  
  20. function select_ext_zip {
  21. echo "[ext-install.sh] Selecting ext-zip"
  22. DOCKER_EXT_LIST+=('zip')
  23.  
  24. apt-get install -yq libzip-dev
  25. docker-php-ext-configure zip
  26. }
  27.  
  28. function select_ext_gd {
  29. echo "[ext-install.sh] Selecting ext-gd"
  30. DOCKER_EXT_LIST+=('gd')
  31.  
  32. apt-get install -yq libwebp-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev
  33. docker-php-ext-configure gd --with-gd --with-webp-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir
  34. }
  35.  
  36. function select_ext_ldap {
  37. echo "[ext-install.sh] Selecting ext-ldap"
  38. DOCKER_EXT_LIST+=('ldap')
  39.  
  40. apt-get install -yq libldap2-dev
  41. docker-php-ext-configure ldap
  42. }
  43.  
  44. function select_ext_soap {
  45. echo "[ext-install.sh] Selecting ext-soap"
  46. DOCKER_EXT_LIST+=('soap')
  47.  
  48. apt-get install -yq libxml2-dev
  49. docker-php-ext-configure soap
  50. }
  51.  
  52. function select_ext_bcmath {
  53. echo "[ext-install.sh] Selecting ext-bcmath"
  54. DOCKER_EXT_LIST+=('bcmath')
  55.  
  56. docker-php-ext-configure bcmath
  57. }
  58.  
  59. function select_ext_pdo_pgsql {
  60. echo "[ext-install.sh] Selecting ext-pdo_pgsql"
  61. DOCKER_EXT_LIST+=('pdo_pgsql')
  62.  
  63. apt-get install -yq libpq-dev
  64. docker-php-ext-configure pdo_pgsql
  65. }
  66.  
  67. function select_ext_memcached {
  68. echo "[ext-install.sh] Selecting ext-memcached"
  69.  
  70. apt-get install -yq libmemcached-dev zlib1g-dev
  71. PECL_EXT_LIST+=('memcached')
  72. }
  73.  
  74. function select_ext_redis {
  75. echo "[ext-install.sh] Selecting ext-redis"
  76. PECL_EXT_LIST+=('redis')
  77. }
  78.  
  79. function select_ext_swoole {
  80. echo "[ext-install.sh] Selecting ext-swoole"
  81. PECL_EXT_LIST+=('swoole')
  82. }
  83.  
  84. function select_ext_amqp {
  85. echo "[ext-install.sh] Selecting ext-amqp"
  86. PECL_EXT_LIST+=('amqp')
  87.  
  88. apt-get install -yq librabbitmq-dev
  89. }
  90.  
  91. function select_ext_opcache {
  92. echo "[ext-install.sh] Selecting ext-opcache"
  93. DOCKER_EXT_LIST+=('opcache')
  94. }
  95.  
  96. function install_docker_extensions() {
  97. local EXT_LIST
  98. EXT_LIST=$(implode " " "${DOCKER_EXT_LIST[@]}")
  99.  
  100. echo "[ext-install.sh] Installing Docker extensions: $EXT_LIST"
  101. docker-php-ext-install -j$(nproc) $EXT_LIST
  102. }
  103.  
  104. function install_pecl_extensions() {
  105. local EXT_LIST
  106. EXT_LIST=$(implode " " "${PECL_EXT_LIST[@]}")
  107.  
  108. echo "[ext-install.sh] Installing PECL extensions: $EXT_LIST"
  109. pecl install $EXT_LIST
  110. docker-php-ext-enable $EXT_LIST
  111. }
  112.  
  113. apt-get update -yq
  114.  
  115. while [ -n "$1" ]
  116. do
  117. case "$1" in
  118. --composer) select_composer ;;
  119. --ext-zip) select_ext_zip ;;
  120. --ext-gd) select_ext_gd ;;
  121. --ext-ldap) select_ext_ldap ;;
  122. --ext-soap) select_ext_soap ;;
  123. --ext-bcmath) select_ext_bcmath ;;
  124. --ext-pdo_pgsql) select_ext_pdo_pgsql ;;
  125. --ext-memcached) select_ext_memcached ;;
  126. --ext-redis) select_ext_redis ;;
  127. --ext-swoole) select_ext_swoole ;;
  128. --ext-amqp) select_ext_amqp ;;
  129. --ext-opcache) select_ext_opcache ;;
  130. *) echo "$1 is not a valid option"; exit 1 ;;
  131. esac
  132. shift
  133. done
  134.  
  135. if [ ${#DOCKER_EXT_LIST[@]} -gt 0 ]; then
  136. install_docker_extensions "${DOCKER_EXT_LIST[@]}"
  137. fi
  138.  
  139. if [ ${#PECL_EXT_LIST[@]} -gt 0 ]; then
  140. install_pecl_extensions "${PECL_EXT_LIST[@]}"
  141. fi
  142.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement