Eigene Java Memory Settings (u.a.) im fionnb/picapport Docker Container

119 views
Skip to first unread message

anre...@yahoo.de

unread,
Apr 30, 2021, 4:14:37 AM4/30/21
to PicApport
Hi. 
Da es für den fionnb/picapport Docker Container leider kein Github bzw. weitergehende Informationen (z.B. Dockerfile) gibt, habe ich hier einen "dirty hack", wie ihr eigene Memory Zuweisungen mittels eines docker-compose.yml machen könnt.

Warum gibt es zu genanntem Docker Container eigentlich keine weiteren Infos? Ein Github dazu oder auch das Dockerfile wären wirklich hilfreich! Vielleicht mag sich der Autor ja mal bei mir melden?!


habe ich eine Anleitung erstellt, wie man mittels docker-compose.yml und einer modifizierten pa-start.sh die Werte verändern kann!

Viel Spaß!

stefan.m...@gmail.com

unread,
Oct 29, 2021, 3:48:23 AM10/29/21
to PicApport

hi,
das gleiche Problem habe ich auch :)
Zudem hat es drei Docker:

micke...@gmail.com

unread,
Oct 30, 2021, 3:05:04 AM10/30/21
to PicApport
Hi,

im Prinzip sind alle drei sehr ähnlich. Für die Erstellung des PicApport Containers braucht es ein Base Image (ein OS deiner Wahl) , die Installation der Systemabhängigkeiten (wie z.B. die Java Version) und das Kopieren/Entpacken/Starten der picapport-headless.jar .

Die ersten beiden bleiben recht eng an diesem Gerüst. Dadurch gibt es recht wenig Konfigurationsmöglichkeiten für den Container. Ich habe mir zusätzlich zu den oben beschriebenen Schritten noch die Memory-Variablen für Java in die Dockerfile geschrieben. So kann man bei jedem Build diese Option nach belieben wählen (so oft ändert man das ja nicht).

Das dritte von dir genannte Image macht das noch etwas schöner. Es sind einige Plugins vorinstalliert und du kannst die Java Variablen (um die es ja hier bei der Ursprungsfrage auch geht) im docker run Statement oder (besser) in der docker-compose.yml anpassen. Der Bereich networks (beide Unterpunkte) sind Geschmacksache, ich würde sie komplett rausschmeißen. Was dann überbleibt, ist ein sehr übersichtliche Combos File mit allem was man braucht.

...wenn ich so drüber nachdenke, wechsle ich wohl auch auf das Image :)

In der Doku bei PicApport steht dazu wirklich nicht viel. Es ist aber auch ein Thema für sich. Vielleicht könnte man dort die hier etablierten Dinge aufnehmen (vor allem die drei Images, die du genannt hast) ?

Grüße,
Michael

David W

unread,
Nov 1, 2021, 10:40:22 AM11/1/21
to PicApport
Hi,
das letzte Image habe ich erstellt, weil ich die anderen nicht für meine Anforderungen passten.
Entscheidend war insbesondere, dass Java seit Java 10 die Memory-Constraints eines Containers auswertet und seine Heapsize passend setzt, siehe z.B. https://www.docker.com/blog/improved-docker-container-integration-with-java-10/
Das tut Java aber nur, wenn keine Parameter explizit gesetzt werden, aber die beiden anderen Images haben da immer etwas gesetzt. Deswegen wollte ich einen Container, der Java auch ohne Memory-Variablen starten kann.

Da ich den Container außerdem auch ohne Internetverbindung nutzen können will, habe ich die Add-Ons und Plugins (die ohne Internet auskommen) bereits ins Image gepackt, was es allerdings sehr groß macht (allein das Plugin zum automatischen Taggen ist über 800MB groß). Aber mein Dockerfile liegt ja bei github, wer ein schlankeres Image bauen will, kann es ja anpassen/ausdünnen (Zeilen 28-41).

Gestartet werden kann das dann z.B. mit "docker run -d -m4G ddw17/picapport:10.2.00".

Eine sinnvolle kleine docker-compose.yml kann übrigens so aussehen:
version: '2.4'
services:
  picapport:
    container_name: 'picapport'
    image: 'ddw17/picapport:10.2.00'
    hostname: 'somename.tld'
    mem_limit: '4G'
    volumes:
      - '/mnt/picapport/data:/opt/picapport/data:rw'
      - '/mnt/picapport/photos:/opt/picapport/photos:rw'

Für mich funktioniert da alles, wie ich es will, aber ich hab nicht alle Optionen getestet --> falls irgendetwas nicht funktioniert, hier auf der Liste melden. Ich hab grad auch ein Image für die neue Version 10.2.00 hochgeladen.

Viele Grüße
David

stefan.m...@gmail.com

unread,
Nov 2, 2021, 10:29:27 AM11/2/21
to PicApport
hängt das alles auch damit zusammen  Update to Java 16 by whatever4711 · Pull Request #13 · whatever4711/picapport (github.com)

@PicApport, macht es euch etwas aus die Kommentarfunktion inm wikie freizuschalten, so dass wir diese Informationen dort hinterlegen können. (und scheint mir der Docker von David der aktivste zu sein.) 
Reply all
Reply to author
Forward
0 new messages