Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- DOCKER_EXT_LIST=()
- PECL_EXT_LIST=()
- function implode {
- local IFS="$1";
- shift;
- echo "$*";
- }
- function select_composer {
- echo "[ext-install.sh] Selecting composer"
- apt-get install -yq unzip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- }
- function select_ext_zip {
- echo "[ext-install.sh] Selecting ext-zip"
- DOCKER_EXT_LIST+=('zip')
- apt-get install -yq libzip-dev
- docker-php-ext-configure zip
- }
- function select_ext_gd {
- echo "[ext-install.sh] Selecting ext-gd"
- DOCKER_EXT_LIST+=('gd')
- apt-get install -yq libwebp-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev
- 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
- }
- function select_ext_ldap {
- echo "[ext-install.sh] Selecting ext-ldap"
- DOCKER_EXT_LIST+=('ldap')
- apt-get install -yq libldap2-dev
- docker-php-ext-configure ldap
- }
- function select_ext_soap {
- echo "[ext-install.sh] Selecting ext-soap"
- DOCKER_EXT_LIST+=('soap')
- apt-get install -yq libxml2-dev
- docker-php-ext-configure soap
- }
- function select_ext_bcmath {
- echo "[ext-install.sh] Selecting ext-bcmath"
- DOCKER_EXT_LIST+=('bcmath')
- docker-php-ext-configure bcmath
- }
- function select_ext_pdo_pgsql {
- echo "[ext-install.sh] Selecting ext-pdo_pgsql"
- DOCKER_EXT_LIST+=('pdo_pgsql')
- apt-get install -yq libpq-dev
- docker-php-ext-configure pdo_pgsql
- }
- function select_ext_memcached {
- echo "[ext-install.sh] Selecting ext-memcached"
- apt-get install -yq libmemcached-dev zlib1g-dev
- PECL_EXT_LIST+=('memcached')
- }
- function select_ext_redis {
- echo "[ext-install.sh] Selecting ext-redis"
- PECL_EXT_LIST+=('redis')
- }
- function select_ext_swoole {
- echo "[ext-install.sh] Selecting ext-swoole"
- PECL_EXT_LIST+=('swoole')
- }
- function select_ext_amqp {
- echo "[ext-install.sh] Selecting ext-amqp"
- PECL_EXT_LIST+=('amqp')
- apt-get install -yq librabbitmq-dev
- }
- function select_ext_opcache {
- echo "[ext-install.sh] Selecting ext-opcache"
- DOCKER_EXT_LIST+=('opcache')
- }
- function install_docker_extensions() {
- local EXT_LIST
- EXT_LIST=$(implode " " "${DOCKER_EXT_LIST[@]}")
- echo "[ext-install.sh] Installing Docker extensions: $EXT_LIST"
- docker-php-ext-install -j$(nproc) $EXT_LIST
- }
- function install_pecl_extensions() {
- local EXT_LIST
- EXT_LIST=$(implode " " "${PECL_EXT_LIST[@]}")
- echo "[ext-install.sh] Installing PECL extensions: $EXT_LIST"
- pecl install $EXT_LIST
- docker-php-ext-enable $EXT_LIST
- }
- apt-get update -yq
- while [ -n "$1" ]
- do
- case "$1" in
- --composer) select_composer ;;
- --ext-zip) select_ext_zip ;;
- --ext-gd) select_ext_gd ;;
- --ext-ldap) select_ext_ldap ;;
- --ext-soap) select_ext_soap ;;
- --ext-bcmath) select_ext_bcmath ;;
- --ext-pdo_pgsql) select_ext_pdo_pgsql ;;
- --ext-memcached) select_ext_memcached ;;
- --ext-redis) select_ext_redis ;;
- --ext-swoole) select_ext_swoole ;;
- --ext-amqp) select_ext_amqp ;;
- --ext-opcache) select_ext_opcache ;;
- *) echo "$1 is not a valid option"; exit 1 ;;
- esac
- shift
- done
- if [ ${#DOCKER_EXT_LIST[@]} -gt 0 ]; then
- install_docker_extensions "${DOCKER_EXT_LIST[@]}"
- fi
- if [ ${#PECL_EXT_LIST[@]} -gt 0 ]; then
- install_pecl_extensions "${PECL_EXT_LIST[@]}"
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement