Portfolio Performance in Docker

Hallo zusammen,

es gab hier vor einiger Zeit die Frage nach PP in Docker an dem ich ebenfalls interessiert war. Ich habe mir das jetzt nochmal angeguckt und es läuft. Mit dem Container kann man PP dann einfach im Browser aufrufen z.B. über ein Tablet.

Ich setze jetzt mal ein paar Docker Grundkenntnisse voraus, daher hier nur eine kurze Anleitung :slight_smile:

Ihr braucht zwei Dateien, das dockerfile und die startapp.sh:

dockerfile

# Pull base image.
FROM jlesage/baseimage-gui:alpine-3.12-glibc

ENV VERSION 0.46.6
ENV ARCHIVE https://github.com/buchen/portfolio/releases/download/${VERSION}/PortfolioPerformance-${VERSION}-linux.gtk.x86_64.tar.gz
ENV APP_ICON_URL=https://www.portfolio-performance.info/images/logo.png
	
RUN apk --no-cache add ca-certificates wget && update-ca-certificates && \
	cd /opt && wget ${ARCHIVE} && tar xvzf PortfolioPerformance-${VERSION}-linux.gtk.x86_64.tar.gz && \
	rm PortfolioPerformance-${VERSION}-linux.gtk.x86_64.tar.gz

RUN \
    add-pkg \
        openjdk8-jre \
		gtk+3.0

RUN \
	sed -i '1s;^;-configuration\n/opt/portfolio/configuration\n-data\n/opt/portfolio/workspace\n;' /opt/portfolio/PortfolioPerformance.ini && \
	echo "osgi.nl=de" >> /opt/portfolio/configuration/config.ini && \
	chmod -R 777 /opt/portfolio && \
    install_app_icon.sh "$APP_ICON_URL"

# Copy the start script.
COPY startapp.sh /startapp.sh

# Set the name of the application.
ENV APP_NAME="Portfolio Performance"

startapp.sh

#!/bin/sh
cd /opt/portfolio/workspace
exec /opt/portfolio/PortfolioPerformance

Die beiden Dateien speichert ihr auf eurem Docker Gerät, loggt euch per SSH ein, navigiert zu dem Pfad und gebt diesen Befehl ein:

docker build -t portfolio .

Der Punkt am Ende ist wichtig :wink:

Jetzt erstellt er das Image, nachdem das alles fertig ist den Container starten:

docker run -d \
--name PortfolioPerformance \
-v /pfad/zum/Ordner/PortfolioPerformance:/opt/portfolio/workspace \
-p 5800:5800 \
-e KEEP_APP_RUNNING=1 \
-e USER_ID=0 \
-e GROUP_ID=0 \
-e TZ="Europe/Berlin" \
portfolio

Anschließend einfach im Browser über eure-Geräte-IP:5800 öffnen.
In dem von euch gewählten Pfad könnt ihr jetzt eure Depot.xml Datei ablegen und im Browser öffnen.

Updates funktionieren ebenfalls, man muss das Image nicht bei jeder Version neu bauen.

Was nicht funktioniert ist das aufrufen von URLs über PP, da kein Browser installiert ist :wink:

Feedback ist gerne gesehen :slight_smile:

6 Like

Hi,

zunächst vielen Dank für deine Lösung.

Ich wollte das ganze auf meiner Synology DS218+ zum Laufen bringen. Allerdings habe ich bisher für die Installation der Container immer die entsprechende Docker-Oberfläche für die Synology verwendet. Da meine learning-by-doing-Skills noch nicht für die Kurzanleitung reichen, würde ich mich (und bestimmt auch zahlreiche andere) sehr über eine Anleitung für die Installation über das Docker-Programm der Synology (https://www.synology.com/de-de/dsm/feature/docker) freuen!

Vielleicht kann jemand weiterhelfen.

Besten Dank im voraus!

Viele Grüße

Stephan

Daran wäre ich auch interessiert.

1 Like

dtpnk hat ein Dockerfile auf Github publiziert. Und auch als Package publiziert.

Laut Doku kann man das mit folgenden Kommando verwenden:

docker pull docker.pkg.github.com/dtpnk/docker-portfolio/docker-portfolio:latest

Kann Synology damit was anfangen? Wenn das tut, können wir das weiter aufpolieren.

Laut dieser Anleitung kann man in den Einstellungen weitere Docker Repositories hinterlegen (ist ja auf Github publiziert) und dann auch danach suchen:

@Stephan_B

bei meiner Recherche habe ich eine ganz gute Anleitung gefunden, wie das add-on Programm Docker auf einer Synology NAS installiert wird. Zumindest ist damit schon einmal eine Basis geschaffen. Hier ist der link zu der Anleitung:

Danke für die Anleitung! Docker läuft soweit super auf meiner NAS.

Nun ist nur das Problem, wie ich genau in der Anleitung gezeigten Oberfläche die Docker Version von Portfolio Performance installiert bekomme…

Es gibt die Möglichkeit unter Abbild/Image auch andere URLs/Files einzubinden (siehe: https://www.cryptocurrencynut.com/monero-node-synology-nas/). Allerdings kann man scheinbar nur Adressen von https://hub.docker.com/ hinzufügen. Zumindest hat der Github-Link nicht funktioniert.

Ich habe aber eine funktionierende Variante, jedoch nur für die ältere Version 0.42.1:

  1. in der Docker-Oberfläche zu Abbild/Image gehen
  2. dort unter Hinzufügen/Add folgende URL einfügen: https://hub.docker.com/r/lenusch/performance-portfolio

Danach wird das Paket geladen. Schön wäre es natürlich, wenn man auf diesem Weg auch die aktuellste Version installieren könnte.

Nachtrag:
Ich konnte den Container zwar installieren, allerdings wird dieser nach dem Start immer wieder unerwartet gestoppt! :frowning:

@Stephan_B
Super, ich finde es gut wie du dich in das Thema eingearbeitet hast und die ersten Gehversuche mit Docker auch erfolgreich sind. Ich habe zwar auch schon die Docker-Version auf meiner Synology NAS installiert, bin zur Zeit aber noch dabei, mich in das Thema weiter einzuarbeiten. Allerdings stelle ich mir immer noch die Frage, welchen Vorteil mir die Installation von PP mit Docker bringen soll. Ich habe die Datenfiles von PP alle in eine Synology Cloud untergebracht und habe so mit einem Notebook und einem Desktop (beide mit Windows 10) von überall Zugriff auf die zuletzt bearbeiteten files. Welchen Vorteil bietet mir die Nutzung von PP mittels Docker?

Die Installation auf einem Rechner ist natürlich problemlos möglich. Ich hätte aber gern eine Lösung, wo die entsprechenden Daten auf meiner NAS liegen und ich von überall Zugriff habe. Das heißt, mittels Docker könnte ich auf PP mit jedem Endgerät von Überall ohne zusätzliche Installation zugreifen.

Ich habe das Problem mal auf Github veröffentlicht, vielleicht gibt es eine Rückmeldung: https://github.com/sunsided/portfolio-performance-docker/issues/1