S3 Minio (Optional)

Einleitung

S3 Minio - Die skalierbare Lösung für objektbasierten Speicher. Mit hoher Performance und Flexibilität ist es ideal für moderne Datenanwendungen. Bei der Nutzung von Relution ist es möglich, dass die Tabelle resource relativ groß wird. Unter anderem werden hier native Apps gespeichert.

Je nach Größe ist es sinnvoll, diese Apps aus der Datenbank auszulagern. Für die Auslagerung von App-Dateien bietet sich ein S3 Bucket an. Das Minio Image ist ein kleiner, einfach zu konfigurierender Docker Container.

Konfiguration der .yml

Der Minio Container muss in der docker-compose.yml hinzugefügt werden.

Fügen Sie dazu diesen Abschnitt ein:

services:
  minio:
    image: "quay.io/minio/minio:latest"
    restart: always
    ports:
      - "9001:9001"
    expose:
      - 9000
    environment:
      - MINIO_ROOT_USER=%USERNAME%
      - MINIO_ROOT_PASSWORD=%PASSWORD%
    command: server --console-address ":9001" /data
    networks:
      relution-network:
        aliases:
          - minio
    volumes:
      - ./volumes/minio/data:/data

In dieser Konfiguration speichert Minio alle Daten auf der lokalen Festplatte unter ./volumes/minio/data Die Parameter MINIO_ROOT_USER und MINIO_ROOT_PASSWORD müssen angepasst werden.

Anschließend muss Relution mitgeteilt werden, dass nicht mehr die rescource-Tabelle die Daten vorhält, sondern ein S3 Bucket.

Für STORAGE_S3_ACCESS_KEY und STORAGE_S3_SECRET_KEY müssen die entsprechenden im Minio zuvor gemeinsam mit dem S3-Bucket erzeugten Werte verwendet werden.

Fügen Sie dazu in der docker-compose.yml diesen Bereich ein:

services:
  relution:
    environment:
      - S3_ENDPOINT=http://minio:9000
      - STORAGE_TYPE=S3
      - STORAGE_S3_ACCESS_KEY=%ACCES-KEY-ID%
      - STORAGE_S3_SECRET_KEY=%SECRET-KEY%
      - STORAGE_S3_BUCKET_NAME=relution

Alternativ können Sie auch in der application.yml diesen Block einfügen:

relution:
  storage:
    resourceStorageType: S3
    s3:
      customEndpoint: http://minio:9000
      accessKey: %ACCES-KEY-ID%
      secretKey: %SECRET-KEY%
      bucketName: relution

Anschließend führen Sie den Befehl docker compose pull aus und das Minio Image wird herunter geladen. Starten Sie danach die Container mit docker compose up -d. Minio ist in wenigen Sekunden betriebsbereit und Relution wird beginnen, alle Inhalte der resource-Tabelle in das S3 Bucket zu kopieren.

Der Prozess kann mit folgende Befehl überwacht werden:

docker logs -f docker_relution