Recentemente, quisemos testar nossas aplicações em um ambiente local. Nossas aplicações utilizam vários serviços como Cassandra, Aerospike, Mysql, etc. A instalação desses serviços localmente leva muito tempo para cada desenvolvedor, por isso configuramos esses serviços para serem executados no estivador. Neste artigo, vamos percorrer como configurar o Aerospike na docker e inicializar o servidor com funções definidas pelo usuário.
Primeiro, nós puxamos a imagem dos centos do repositório docker e instalamos o arquivo tar usando wget (e adicionamos o logrotate que Aerospike usa).
RUN yum -y install logrotate || exit $?
DE centos
CORRER yum -y install tar || sair $?
RUN yum -y install wget || exit $?
Vamos baixar o Aerospike do repositório e instalá-lo:
ENV AEROSPIKE_VERSION=3.5.4
RUN wget “https://www.aerospike.com/artifacts/aerospike-server-community/${AEROSPIKE_VERSION}/aerospike-server-community-${AEROSPIKE_VERSION}-el6.tgz” -O aerospike.tgz || exit $?
CORRER mkdir aerospike || sair $?
RUN tar xzf aerospike.tgz -strip-components=1 -C aerospike || exit $?
CORRER cd aerospike && ./asinstall || sair $?
Temos agora uma imagem da doca com o Aerospike instalado. Também precisamos de adicionar as funções definidas pelo utilizador à imagem da doca. O seguinte comando adicionará uma pasta user-udf na imagem de docker que tenha UDFs nela:
ADD utilizador-udf utilizador-udf
Depois expomos os portos de Aerospike, para que se possa aceder a partir de outros contentores das docas:
EXPOR 3000 3001 3002 3003
No nosso caso, precisamos de um script para iniciar o servidor Aerospike e importar as funções definidas pelo usuário. Podemos configurar o script para ser executado usando o "CMD":
CMD datapipe-user-udf/bin/start.sh
O conteúdo do script start.sh é o seguinte. Este script irá iniciar o Aerospike em processo de fundo. Em seguida, ele irá importar as funções definidas pelo usuário:
/usr/bin/asd - em primeiro plano &
dormir 5
/usr/bin/ascli udf-put user-udf/udf/didSet.lua || exit $?
/usr/bin/ascli udf-put user-udf/udf/gidSet.lua || exit $?
/usr/bin/ascli udf-put user-udf/udf/stidSet.lua || exit $?
esperar
Podemos construir a imagem da doca Aerospike com o seguinte comando:
docker build -t aerospike <aerospike-docker-folder>
Corre Aerospike:
pista de aterragem -t -p 3000:3000 aerospike
O servidor Aerospike está agora a funcionar na porta 3000:3000 (liga a porta ao seu anfitrião local).
Você pode acessar Aerospike através do endereço tcp localhost:3000.