Wie installiert man CaSSAndRA in Docker?

themanfrommoon

Active member
Moin,

ich bin seit ein paar Wochen dabei meine Home Server Hardware umzubasteln, habe in dem Zuge mit PROXMOX und Docker angefangen und möchte nun gerne CaSSAndRA in Docker laufen lassen.
Mit einigen anderen Applikationen ist es mir gelungen diese relativ einfach per docker-compose.yaml file zu installieren.
Hier mal als Beispiel meine Vorgehensweise für Grafana:
Als erstes erstelle ich einen Ordner "grafana", wechsel in den Ordner und erzeuge eine neue docker.compose.yaml Datei:
Code:
sudo mkdir -p /opt/grafana/
cd /opt/grafana
sudo nano docker-compose.yaml

In die docker-compose.yaml fürge ich dann folgendes ein:
Code:
version: "3.8"
services:
  grafana:
    image: grafana/grafana-oss
    container_name: 06_Grafana
    restart: unless-stopped
    environment:
     - GF_INSTALL_PLUGINS=simpod-json-datasource
    ports:
     - '3000:3000'
    networks:
      - 06_grafana_net
    volumes:
      - 06_grafana_storage:/var/lib/Grafana
volumes:
  06_grafana_storage:
    name: "06_grafana_storage"
networks:
  06_grafana_net:
    name: "06_grafana_net"

Danach kann ich den Container folgendermaßen starten:
Code:
sudo docker compose up -d

Das funktioniert wunderbar und man kann es immer wieder schnell wiederherstellen und nachvollziehen.
In der docker-compose.yaml werden Variablen gesetzt, Port definiert, Startbedingungen gesetzt, Netzwerk und Volumes definiert, usw.

Meine Frage lautet nun:
Was muss in der docker-compose.yaml stehen, damit man CaSSAndRA genauso einfach per copy&paste aufsetzen kann?

Vielen Dank und beste Grüße,
Chris
 
Moin Chris,

also direkt mit docker-compose Files kannst du nur arbeiten, wenn es fertige Docker Images gibt. Die gibt es nach meinem Stand nicht. Du musst dir also selbst ein Image erzeugen.

Ich persönlich habe da noch alten Code bei mir laufen, aus der Zeit als es von Cassandra "nichts" offizielles gab. Mittlerweile gibt es fertige Files dafür.

Der folgende Code ist untested - da nur aus dem Kopf:

1.) In ein Verzeichnis deiner Wahl wechseln.

2.) Aktuellen Code von Cassandra Clonen:
Code:
git clone https://github.com/EinEinfach/CaSSAndRA.git

3.) Docker Image mit dem Namen CaSSAndRA und dem Tagnamen: MEINTAG erzeugen:
Code:
cd CaSSAndRA && docker build --no-cache -f Dockerfile -t CaSSAndRA:MEINTAG .

4.) docker-compose "anlegen" und nutzen:
Code:
version: '2'

services:
  cassandra:
    mem_limit: 500m
    image: CaSSAndRA:MEINTAG
    container_name: cassandra
    hostname: cassandra
    restart: unless-stopped
    environment:
      - TZ=Europe/Berlin
      - TERM=linux
    ports:
      - '8050:8050'
    volumes:
      - /DEINPFADZUDEINENCASSANDRACONFIGDATEN/:/root/.cassandra

So ungefährt muss es funktionieren. Da ich seit Oktober Cassandra nicht mehr angefasst habe - ist es es nur so grob runter geschrieben und nicht getestet. Vor allem auch, weil ich ein anderes Verfahren zum Bauen des Containers verwende.

Wenn es Probleme gibt, schreib nochmal.

Grüße,
Stefan
 
So, endlich, endlich, endlich komme ich jetzt wieder an diese Stelle (hatte keine Zeit und viele Probleme mit meinem PROXMOX Server auf dem Docker läuft, aber nun geht es endlich weiter)

Das Linux Niveau bitte nochmal deutlich runterschrauben ;-)

Also, ich habe folgendes gemacht:
Code:
sudo mkdir -p /opt/cassandra/
cd /opt/cassandra
sudo git clone https://github.com/EinEinfach/CaSSAndRA.git
sudo nano docker-compose.yaml

Soweit ist mir das klar ;-)

Im Compose File sind mir "MEINTAG" und "volumes: - /DEINPFADZUDEINENCASSANDRACONFIGDATEN/:/root/.cassandra" nicht klar.

Was ist MEINTAG?
Wie lautet mein Pfad zu den Config Daten? (Den möchte ich vermutlich auf einem externen Volumen legen, damit diese persistent sind) (Ich hab keine Ahnung:rolleyes:)

Danke und beste Grüße,
Chris
 
Im Compose File sind mir "MEINTAG" und "volumes: - /DEINPFADZUDEINENCASSANDRACONFIGDATEN/:/root/.cassandra" nicht klar.

Was ist MEINTAG?

MEINTAG steht einfach für einen Namen deiner Wahl. Du baust später den Container selber zusammen via docker build - dort musst du auch einen Namen angeben. Dieser muss mit dem Namen / Tag aus deinem Compose File übereinstimmen. Stelle es dir wie eine Versionsnummer vor, damit Docker weiß, welche Version deines Images er nehmen soll.

Wie lautet mein Pfad zu den Config Daten? (Den möchte ich vermutlich auf einem externen Volumen legen, damit diese persistent sind) (Ich hab keine Ahnung:rolleyes:)

Ein Pfad deiner Wahl. Bei mir liegen die zium Beispiel alle unter:
/srv/files/cassandra/config/
 
Okay, also ist MEINTAG z.B. "latest" ....oder "chris" oder "20240401" ...dann nehme ich einfach "latest" dann ist das immer gleich.

Ich habe es nun probiert:
Code:
cd CaSSAndRA && docker build --no-cache -f Dockerfile -t CaSSAndRA:latest
aber es funktioniert leider nicht:
Code:
admin@docker:/opt/cassandra$ cd CaSSAndRA && docker build --no-cache -f Dockerfile -t CaSSAndRA:latest
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build
admin@docker:/opt/cassandra/CaSSAndRA$
 
Wenn du einen Proxmox Server hast, würde ich nicht Docker nutzen. Einfach einen schmalen Debian-LXC und nach Anleitung vorgehen Das vereinfacht (im Fall von Cassandra) einiges.
 
Okay, also ist MEINTAG z.B. "latest" ....oder "chris" oder "20240401" ...dann nehme ich einfach "latest" dann ist das immer gleich.

Ich habe es nun probiert:
Code:
cd CaSSAndRA && docker build --no-cache -f Dockerfile -t CaSSAndRA:latest
aber es funktioniert leider nicht:
Code:
admin@docker:/opt/cassandra$ cd CaSSAndRA && docker build --no-cache -f Dockerfile -t CaSSAndRA:latest
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build
admin@docker:/opt/cassandra/CaSSAndRA$
du scheinst eine neuere Docker Version als ich zu haben, welche bereits das neuere docker buildx benutzt - das habe ich noch nie benutzt. Da müsstest du im internet gucken, wie man den Befehl adaptiert.
 
Oben