Vor kurzem wollten wir unsere Apps in einer lokalen Umgebung testen. Unsere Apps nutzen verschiedene Dienste wie Cassandra, Aerospike, Mysql, etc. Die lokale Einrichtung dieser Dienste nimmt für jeden Entwickler viel Zeit in Anspruch, daher richten wir diese Dienste so ein, dass sie im Docker laufen. In diesem Artikel werden wir durchgehen, wie man Aerospike im Docker einrichtet und den Server mit benutzerdefinierten Funktionen initialisiert.
Zuerst ziehen wir das Image von centos aus dem Docker-Repository und installieren die tar-Datei mit wget (und fügen Logrotate hinzu, die Aerospike verwendet).
RUN yum -y install logrotate |||| exit $?
Von centos
RUN yum -y install tar |||| exit $?
RUN yum -y install wget |||| exit $?
Wir werden Aerospike aus dem Repository herunterladen und installieren:
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 $?
RUN mkdir aerospike ||| exit $?
RUN tar xzf aerospike.tgz -strip-components=1 -C aerospike ||| exit $?
RUN cd aerospike &&&./asinstall ||| exit $?
Wir haben jetzt ein Docker-Image mit Aerospike installiert. Wir müssen auch die benutzerdefinierten Funktionen zum Dockerbild hinzufügen. Der folgende Befehl fügt einen user-udf-Ordner in das Docker-Image ein, in dem UDFs enthalten sind:
ADD user-udf user-udf user-udf
Dann legen wir die Häfen von Aerospike frei, so dass sie von anderen Dockern aus erreicht werden können:
EXPONIEREN 3000 3001 3002 3002 3003
In unserem Fall benötigen wir ein Skript, um den Aerospike-Server zu starten und die benutzerdefinierten Funktionen zu importieren. Wir können das Skript mit "CMD" auf die Ausführung einstellen:
CMD Datenleitung - user-udf/bin/bin/start.sh
Im Folgenden finden Sie den Inhalt des Skripts start.sh. Dieses Skript startet Aerospike im Hintergrund. Es importiert dann die benutzerdefinierten Funktionen:
/usr/bin/asd - Vordergrund &
5 Personen schlafen
/usr/bin/ascli udf-put user-udf/udf/didSet.lua ||| exit $?
/usr/bin/ascli udf-put user-udf/udf/udf/gidSet.lua ||| exit $?
/usr/bin/ascli udf-put user-udf/udf/stidSet.lua ||| exit $?
warten
Wir können das Aerospike Docker Image mit dem folgenden Befehl erstellen:
docker build -t aerospike <aerospike-docker-folder>
Führen Sie Aerospike aus:
docker run -t -p 3000:3000 aerospike
Der Aerospike-Server läuft nun auf Port 3000:3000 (bindet den Port auf Ihrem lokalen Rechner).
Sie können auf Aerospike über die tcp-Adresse localhost:3000 zugreifen.