Implement Cassandra DB & PHP Extension (#2214)
* Implementing Cassandra DB & PHP Extension * Update documentation for Cassandra * Added Cassandra for testing CI
This commit is contained in:
parent
768f14b6dd
commit
1602ff2dd0
@ -29,7 +29,7 @@ env:
|
|||||||
|
|
||||||
- PHP_VERSION=NA BUILD_SERVICE=solr
|
- PHP_VERSION=NA BUILD_SERVICE=solr
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
|
- PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis"
|
- PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis cassandra"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
|
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
|
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
|
- PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
|
||||||
|
@ -125,6 +125,7 @@ That's it! enjoy :)
|
|||||||
- Neo4j
|
- Neo4j
|
||||||
- CouchDB
|
- CouchDB
|
||||||
- RethinkDB
|
- RethinkDB
|
||||||
|
- Cassandra
|
||||||
|
|
||||||
|
|
||||||
- **Database Management Apps:**
|
- **Database Management Apps:**
|
||||||
|
5
cassandra/Dockerfile
Normal file
5
cassandra/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
ARG CASSANDRA_VERSION=latest
|
||||||
|
FROM bitnami/cassandra:${CASSANDRA_VERSION}
|
||||||
|
|
||||||
|
LABEL maintainer="Stefan Neuhaus <https://www.github.com/stefnats>"
|
||||||
|
|
@ -45,6 +45,8 @@ volumes:
|
|||||||
driver: ${VOLUMES_DRIVER}
|
driver: ${VOLUMES_DRIVER}
|
||||||
sonarqube:
|
sonarqube:
|
||||||
driver: ${VOLUMES_DRIVER}
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
cassandra:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
@ -67,6 +69,7 @@ services:
|
|||||||
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
|
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
|
||||||
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
|
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
|
||||||
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
|
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
|
||||||
|
- INSTALL_CASSANDRA=${WORKSPACE_INSTALL_CASSANDRA}
|
||||||
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
|
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
|
||||||
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
|
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
|
||||||
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
|
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
|
||||||
@ -153,6 +156,7 @@ services:
|
|||||||
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
||||||
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
|
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
|
||||||
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
|
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
|
||||||
|
- INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA}
|
||||||
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
|
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
|
||||||
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
|
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
|
||||||
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
|
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
|
||||||
@ -220,6 +224,7 @@ services:
|
|||||||
- INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE}
|
- INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE}
|
||||||
- INSTALL_MYSQL_CLIENT=${PHP_WORKER_INSTALL_MYSQL_CLIENT}
|
- INSTALL_MYSQL_CLIENT=${PHP_WORKER_INSTALL_MYSQL_CLIENT}
|
||||||
- INSTALL_AMQP=${PHP_WORKER_INSTALL_AMQP}
|
- INSTALL_AMQP=${PHP_WORKER_INSTALL_AMQP}
|
||||||
|
- INSTALL_CASSANDRA=${PHP_WORKER_INSTALL_CASSANDRA}
|
||||||
- INSTALL_GHOSTSCRIPT=${PHP_WORKER_INSTALL_GHOSTSCRIPT}
|
- INSTALL_GHOSTSCRIPT=${PHP_WORKER_INSTALL_GHOSTSCRIPT}
|
||||||
- INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE}
|
- INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE}
|
||||||
- INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT}
|
- INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT}
|
||||||
@ -246,6 +251,7 @@ services:
|
|||||||
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
|
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
|
||||||
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
|
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
|
||||||
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
|
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
|
||||||
|
- INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA}
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ./laravel-horizon/supervisord.d:/etc/supervisord.d
|
- ./laravel-horizon/supervisord.d:/etc/supervisord.d
|
||||||
@ -584,6 +590,38 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
### Cassandra ############################################
|
||||||
|
cassandra:
|
||||||
|
build: ./cassandra
|
||||||
|
ports:
|
||||||
|
- "${CASSANDRA_TRANSPORT_PORT_NUMBER}:7000"
|
||||||
|
- "${CASSANDRA_JMX_PORT_NUMBER}:7199"
|
||||||
|
- "${CASSANDRA_CQL_PORT_NUMBER}:9042"
|
||||||
|
privileged: true
|
||||||
|
environment:
|
||||||
|
- CASSANDRA_VERSION=${CASSANDRA_VERSION}
|
||||||
|
- CASSANDRA_TRANSPORT_PORT_NUMBER=${CASSANDRA_TRANSPORT_PORT_NUMBER}
|
||||||
|
- CASSANDRA_JMX_PORT_NUMBER=${CASSANDRA_JMX_PORT_NUMBER}
|
||||||
|
- CASSANDRA_CQL_PORT_NUMBER=${CASSANDRA_CQL_PORT_NUMBER}
|
||||||
|
- CASSANDRA_USER=${CASSANDRA_USER}
|
||||||
|
- CASSANDRA_PASSWORD_SEEDER=${CASSANDRA_PASSWORD_SEEDER}
|
||||||
|
- CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD}
|
||||||
|
- CASSANDRA_NUM_TOKENS=${CASSANDRA_NUM_TOKENS}
|
||||||
|
- CASSANDRA_HOST=${CASSANDRA_HOST}
|
||||||
|
- CASSANDRA_CLUSTER_NAME=${CASSANDRA_CLUSTER_NAME}
|
||||||
|
- CASSANDRA_SEEDS=${CASSANDRA_SEEDS}
|
||||||
|
- CASSANDRA_ENDPOINT_SNITCH=${CASSANDRA_ENDPOINT_SNITCH}
|
||||||
|
- CASSANDRA_ENABLE_RPC=${CASSANDRA_ENABLE_RPC}
|
||||||
|
- CASSANDRA_DATACENTER=${CASSANDRA_DATACENTER}
|
||||||
|
- CASSANDRA_RACK=${CASSANDRA_RACK}
|
||||||
|
hostname: laradock-cassandra
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/cassandra:/var/lib/cassandra
|
||||||
|
depends_on:
|
||||||
|
- php-fpm
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
### Beanstalkd Console ###################################
|
### Beanstalkd Console ###################################
|
||||||
beanstalkd-console:
|
beanstalkd-console:
|
||||||
build: ./beanstalkd-console
|
build: ./beanstalkd-console
|
||||||
|
36
env-example
36
env-example
@ -106,6 +106,7 @@ WORKSPACE_INSTALL_XSL=false
|
|||||||
WORKSPACE_INSTALL_IMAP=false
|
WORKSPACE_INSTALL_IMAP=false
|
||||||
WORKSPACE_INSTALL_MONGO=false
|
WORKSPACE_INSTALL_MONGO=false
|
||||||
WORKSPACE_INSTALL_AMQP=false
|
WORKSPACE_INSTALL_AMQP=false
|
||||||
|
WORKSPACE_INSTALL_CASSANDRA=false
|
||||||
WORKSPACE_INSTALL_MSSQL=false
|
WORKSPACE_INSTALL_MSSQL=false
|
||||||
WORKSPACE_INSTALL_DRUSH=false
|
WORKSPACE_INSTALL_DRUSH=false
|
||||||
WORKSPACE_DRUSH_VERSION=8.1.17
|
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||||
@ -161,6 +162,7 @@ PHP_FPM_INSTALL_PHPDBG=false
|
|||||||
PHP_FPM_INSTALL_IMAP=false
|
PHP_FPM_INSTALL_IMAP=false
|
||||||
PHP_FPM_INSTALL_MONGO=false
|
PHP_FPM_INSTALL_MONGO=false
|
||||||
PHP_FPM_INSTALL_AMQP=false
|
PHP_FPM_INSTALL_AMQP=false
|
||||||
|
PHP_FPM_INSTALL_CASSANDRA=false
|
||||||
PHP_FPM_INSTALL_MSSQL=false
|
PHP_FPM_INSTALL_MSSQL=false
|
||||||
PHP_FPM_INSTALL_SSH2=false
|
PHP_FPM_INSTALL_SSH2=false
|
||||||
PHP_FPM_INSTALL_SOAP=false
|
PHP_FPM_INSTALL_SOAP=false
|
||||||
@ -205,6 +207,7 @@ PHP_WORKER_INSTALL_SWOOLE=false
|
|||||||
PHP_WORKER_INSTALL_TAINT=false
|
PHP_WORKER_INSTALL_TAINT=false
|
||||||
PHP_WORKER_INSTALL_FFMPEG=false
|
PHP_WORKER_INSTALL_FFMPEG=false
|
||||||
PHP_WORKER_INSTALL_GMP=false
|
PHP_WORKER_INSTALL_GMP=false
|
||||||
|
PHP_WORKER_INSTALL_CASSANDRA=false
|
||||||
|
|
||||||
PHP_WORKER_PUID=1000
|
PHP_WORKER_PUID=1000
|
||||||
PHP_WORKER_PGID=1000
|
PHP_WORKER_PGID=1000
|
||||||
@ -731,3 +734,36 @@ SONARQUBE_POSTGRES_HOST=postgres
|
|||||||
SONARQUBE_POSTGRES_DB=sonar
|
SONARQUBE_POSTGRES_DB=sonar
|
||||||
SONARQUBE_POSTGRES_USER=sonar
|
SONARQUBE_POSTGRES_USER=sonar
|
||||||
SONARQUBE_POSTGRES_PASSWORD=sonarPass
|
SONARQUBE_POSTGRES_PASSWORD=sonarPass
|
||||||
|
|
||||||
|
### CASSANDRA ################################################
|
||||||
|
|
||||||
|
# Cassandra Version, supported tags can be found at https://hub.docker.com/r/bitnami/cassandra/
|
||||||
|
CASSANDRA_VERSION=latest
|
||||||
|
# Inter-node cluster communication port. Default: 7000
|
||||||
|
CASSANDRA_TRANSPORT_PORT_NUMBER=7000
|
||||||
|
# JMX connections port. Default: 7199
|
||||||
|
CASSANDRA_JMX_PORT_NUMBER=7199
|
||||||
|
# Client port. Default: 9042.
|
||||||
|
CASSANDRA_CQL_PORT_NUMBER=9042
|
||||||
|
# Cassandra user name. Defaults: cassandra
|
||||||
|
CASSANDRA_USER=cassandra
|
||||||
|
# Password seeder will change the Cassandra default credentials at initialization. In clusters, only one node should be marked as password seeder. Default: no
|
||||||
|
CASSANDRA_PASSWORD_SEEDER=no
|
||||||
|
# Cassandra user password. Default: cassandra
|
||||||
|
CASSANDRA_PASSWORD=cassandra
|
||||||
|
# Number of tokens for the node. Default: 256.
|
||||||
|
CASSANDRA_NUM_TOKENS=256
|
||||||
|
# Hostname used to configure Cassandra. It can be either an IP or a domain. If left empty, it will be resolved to the machine IP.
|
||||||
|
CASSANDRA_HOST=
|
||||||
|
# Cluster name to configure Cassandra.. Defaults: My Cluster
|
||||||
|
CASSANDRA_CLUSTER_NAME="My Cluster"
|
||||||
|
# : Hosts that will act as Cassandra seeds. No defaults.
|
||||||
|
CASSANDRA_SEEDS=
|
||||||
|
# Snitch name (which determines which data centers and racks nodes belong to). Default SimpleSnitch
|
||||||
|
CASSANDRA_ENDPOINT_SNITCH=SimpleSnitch
|
||||||
|
# Enable the thrift RPC endpoint. Default :true
|
||||||
|
CASSANDRA_ENABLE_RPC=true
|
||||||
|
# Datacenter name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: dc1.
|
||||||
|
CASSANDRA_DATACENTER=dc1
|
||||||
|
# Rack name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: rack1.
|
||||||
|
CASSANDRA_RACK=rack1
|
@ -45,6 +45,28 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
|||||||
&& docker-php-ext-install pdo_pgsql \
|
&& docker-php-ext-install pdo_pgsql \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
# Install Cassandra drivers:
|
||||||
|
ARG INSTALL_CASSANDRA=false
|
||||||
|
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||||
|
apk --update add cassandra-cpp-driver \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
WORKDIR /usr/src
|
||||||
|
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||||
|
git clone https://github.com/datastax/php-driver.git \
|
||||||
|
&& cd php-driver/ext \
|
||||||
|
&& phpize \
|
||||||
|
&& mkdir -p /usr/src/php-driver/build \
|
||||||
|
&& cd /usr/src/php-driver/build \
|
||||||
|
&& ../ext/configure > /dev/null \
|
||||||
|
&& make clean >/dev/null \
|
||||||
|
&& make >/dev/null 2>&1 \
|
||||||
|
&& make install \
|
||||||
|
&& docker-php-ext-enable cassandra \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# PHP Memcached:
|
# PHP Memcached:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
@ -85,6 +85,26 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|||||||
docker-php-ext-install sockets \
|
docker-php-ext-install sockets \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
# Install Cassandra drivers:
|
||||||
|
ARG INSTALL_CASSANDRA=false
|
||||||
|
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||||
|
apk --update add cassandra-cpp-driver \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
WORKDIR /usr/src
|
||||||
|
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||||
|
git clone https://github.com/datastax/php-driver.git \
|
||||||
|
&& cd php-driver/ext \
|
||||||
|
&& phpize \
|
||||||
|
&& mkdir -p /usr/src/php-driver/build \
|
||||||
|
&& cd /usr/src/php-driver/build \
|
||||||
|
&& ../ext/configure --with-php-config=/usr/bin/php-config7.1 > /dev/null \
|
||||||
|
&& make clean >/dev/null \
|
||||||
|
&& make >/dev/null 2>&1 \
|
||||||
|
&& make install \
|
||||||
|
&& docker-php-ext-enable cassandra \
|
||||||
|
;fi
|
||||||
|
|
||||||
# Install Phalcon ext
|
# Install Phalcon ext
|
||||||
ARG INSTALL_PHALCON=false
|
ARG INSTALL_PHALCON=false
|
||||||
ARG PHALCON_VERSION
|
ARG PHALCON_VERSION
|
||||||
|
@ -406,6 +406,37 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|||||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# CASSANDRA:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_CASSANDRA=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||||
|
apt-get install libgmp-dev -y && \
|
||||||
|
curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.28.0/libuv1-dev_1.28.0-1_amd64.deb -o libuv1-dev.deb && \
|
||||||
|
curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.28.0/libuv1_1.28.0-1_amd64.deb -o libuv1.deb && \
|
||||||
|
curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.12.0/cassandra-cpp-driver-dev_2.12.0-1_amd64.deb -o cassandra-cpp-driver-dev.deb && \
|
||||||
|
curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.12.0/cassandra-cpp-driver_2.12.0-1_amd64.deb -o cassandra-cpp-driver.deb && \
|
||||||
|
dpkg -i libuv1.deb && \
|
||||||
|
dpkg -i libuv1-dev.deb && \
|
||||||
|
dpkg -i cassandra-cpp-driver.deb && \
|
||||||
|
dpkg -i cassandra-cpp-driver-dev.deb && \
|
||||||
|
rm libuv1.deb libuv1-dev.deb cassandra-cpp-driver-dev.deb cassandra-cpp-driver.deb && \
|
||||||
|
cd /usr/src && \
|
||||||
|
git clone https://github.com/datastax/php-driver.git && \
|
||||||
|
cd /usr/src/php-driver/ext && \
|
||||||
|
phpize && \
|
||||||
|
mkdir /usr/src/php-driver/build && \
|
||||||
|
cd /usr/src/php-driver/build && \
|
||||||
|
../ext/configure > /dev/null && \
|
||||||
|
make clean >/dev/null && \
|
||||||
|
make >/dev/null 2>&1 && \
|
||||||
|
make install && \
|
||||||
|
echo "extension=cassandra.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini && \
|
||||||
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-cassandra.ini \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# PHP REDIS EXTENSION
|
# PHP REDIS EXTENSION
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
Loading…
Reference in New Issue
Block a user