Docker Volume service S3



Docker-Volume-S3 ist meine Implementierung eines S3 Treibers für Docker. Der Betrieb erfolgt via Systemd Service oder native als Docker Plugin. Um die Aktualisierbarkeit einfacher zu gestalten, empfehle ich die Installation und Konfiguration mit Hilfe meines Ansible Playbooks oder via Package Manager und dem einbinden des Repositories.

Voraussetzung

  • s3fs
  • Docker Engine

Manuelle Installation

Die executable “docker-volume-s3” erwartet die benötigte Konfiguration über Umgebungsvariablen.

LOG_LEVEL=1
S3_CONF_ACCESSKEY=<s3accesskey>
S3_CONF_SECRETKEY=<s3secret>
S3_CONF_REGION=eu-central-1
S3_CONF_OPTIONS=allow_other,nonempty,use_path_request_style
S3_CONF_ENDPOINT=<s3endpoint>

Wurde zuvor z.B. Rexray als S3 Volume Provider verwendet, enthalten die Buckets jeweils ein “data” Unterverzeichnis in dem die eigentlichen Daten liegen. Um dies zu Berücksichtigen, kann dieses Verzeichnis mit folgender Konfiguration angegeben werden:

S3_CONF_MOUNTDIR=/data

Desweiteren können folgende Default Einstellung verändert werden:

S3_CONF_SOCKET=/run/docker/plugins/s3.sock
S3_CONF_ROOTMOUNT=/mnt

Anschließend kann der Service via “docker-volume-s3” ausgeführt werden.