Java is required by SongKong and is installed and runs as part of the SongKong Docker Image.
SongKong is designed to run on multiple folders at once, and should need little more memory than is required to process the folders it is actively processing. So for example if you had 200 albums each in its own folder, and your PC had four cpus it should just be processing 4 folders in parallel and have enough memory to process those four folders.
If you have all your files in a single folder then that can be problematic and causes SongKong to use more memory but I don’t think that is your situation.
On the desktop version of SongKong you can see current memory used / max memory allowed
but that is not shown on web UI.
But if you look at songkonguser0-0.log in your SongKong config folder you can see how much memory is allocated at start up, and for Dockers it is set to just 800mb.
i.e
23/01/2020 22.19.16:EST:WARNING: SongKong 6.7.3 Closer 1110 16/12/2019 using Java 1.8.0_212 25.212-b04 64bit on Linux 4.14.24-qnap amd64 initialized successfully
23/01/2020 22.19.16:EST:WARNING: No of CPUs:4
23/01/2020 22.19.16:EST:WARNING: SongKong has been configured with minimum heap memory of 150 mb, maximum heap memory of 800 mb and maximum permanent memory of -32 mb
23/01/2020 22.19.16:EST:WARNING: Total Computer Memory is 64,298 mb
The SongKong Docker file used to create the SongKong image can be found at https://bitbucket.org/ijabz/songkongdocker/src/master/Dockerfile
FROM openjdk:8-jre-alpine
RUN apk --no-cache add \
ca-certificates \
curl \
fontconfig \
msttcorefonts-installer \
tini \
&& update-ms-fonts \
&& fc-cache -f
RUN mkdir -p /opt \
&& curl http://www.jthink.net/songkong/downloads/current/songkong-linux-docker.tgz?val=112 | tar -C /opt -xzf - \
&& find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x
EXPOSE 4567
ENTRYPOINT ["/sbin/tini"]
# Config, License, Logs, Reports and Internal Database
VOLUME /songkong
# Music folder should be mounted here
VOLUME /music
WORKDIR /opt/songkong
CMD /opt/songkong/songkongremote8.sh
Max memory is set in songkongremote8.sh
which currently contains
java -Xms150m -Xmx900m -Dcom.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog -Dorg.jboss.logging.provider=jdk -Djava.util.logging.config.class=com.jthink.songkong.logging.StandardLogging -jar lib/songkong-6.7.jar -r
(Note this is a restriction of Java, it cannot automatically just use all the memory available on your computer, you have to preallocate the max memory it can use, this is not the same as the max memory it will use)
You should not usually have to increase the amount of memory available, but if you are getting a memory problem and you have additional memory available then it that might be an idea to increase it. The question is how you modify for a docker image without having to create your own docker image, that is something I need to research tomorrow…
Seems possible solution is at https://success.docker.com/article/java-app-is-killed-by-docker I will look into this.