diff --git a/Dockerfile.projector b/Dockerfile.projector index e88a513..ce4a8af 100644 --- a/Dockerfile.projector +++ b/Dockerfile.projector @@ -1,19 +1,16 @@ -FROM rednoah/filebot +FROM rednoah/filebot:beta LABEL maintainer="Reinhard Pointner " RUN set -eux \ - && curl -fsSL -o projector-server.zip https://github.com/JetBrains/projector-server/releases/download/v1.8.1/projector-server-v1.8.1.zip \ - && unzip projector-server.zip -d /opt \ - && mv -v /opt/projector-server-1.8.1 /opt/projector-server \ - && rm -rvf projector-server.zip - -RUN set -eux \ - && ( [ $(uname -m) = 'aarch64' ] && curl -fsSL -o jbr.tar.gz https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-17.0.11-linux-aarch64-b1207.24.tar.gz ) || ( [ $(uname -m) = 'x86_64' ] && curl -fsSL -o jbr.tar.gz https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-17.0.11-linux-x64-b1207.24.tar.gz ) \ - && mkdir -p /opt/jbr \ - && tar -xvzf jbr.tar.gz --strip-components 1 -C /opt/jbr \ - && rm -rv jbr.tar.gz + ## ** install projector + && curl -fsSL -o /tmp/projector-server.zip https://github.com/JetBrains/projector-server/releases/download/v1.8.1/projector-server-v1.8.1.zip \ + && unzip /tmp/projector-server.zip -d /opt \ + && mv -v /opt/projector-server-* /opt/projector-server \ + && rm -rvf /opt/projector-server/lib/slf4j-* /opt/projector-server/bin /tmp/projector-server.zip \ + ## ** apply custom application configuration + && sed -i 's|-jar "$FILEBOT_HOME/jar/filebot.jar"|-classpath "/opt/projector-server/lib/*:/usr/share/filebot/jar/*" -Djdk.attach.allowAttachSelf=true -Dorg.jetbrains.projector.server.enable=true -Dorg.jetbrains.projector.server.classToLaunch=net.filebot.Main org.jetbrains.projector.server.ProjectorLauncher|g; s|-XX:+DisableAttachMechanism|-Dnet.filebot.glass.effect=none -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED|g' /usr/bin/filebot # install custom launcher scripts diff --git a/makefile b/makefile index c62d425..6bfa079 100644 --- a/makefile +++ b/makefile @@ -17,7 +17,7 @@ filebot-xpra: filebot-projector: docker build --rm -t filebot-projector -f Dockerfile.projector . - docker run -it -v data:/data -p 8887:8887 filebot-projector --mode Episodes + docker run -it -v data:/data -p 8887:8887 filebot-projector filebot-alpine: docker build --rm -t filebot-alpine -f Dockerfile.alpine . diff --git a/projector/opt/filebot-projector/start b/projector/opt/filebot-projector/start index 8d12ac3..cb04f60 100755 --- a/projector/opt/filebot-projector/start +++ b/projector/opt/filebot-projector/start @@ -1,41 +1,2 @@ #!/bin/sh -FILEBOT_HOME="/usr/share/filebot" - - -# sanity check -if [ -z "$HOME" ]; then - echo '$HOME must be set' - exit 1 -fi - -if [ "$EUID" = "0" ]; then - echo "$0 must NOT run as root" -fi - - -# select application data folder -APP_DATA="$HOME" - -# select libjnidispatch.system.so from $(uname -m)-linux-gnu folder -LIBRARY_PATH=$(echo /usr/lib/*-linux-gnu*/jni | tr ' ' ':') - - -# use JetBrains JRE 17 -JAVA_HOME="/opt/jbr" - - -"$JAVA_HOME/bin/java" -Duser.home="$HOME" -Dapplication.deployment=docker --add-modules ALL-MODULE-PATH -Djna.boot.library.name=jnidispatch.system -Dnet.filebot.archive.extractor=ShellExecutables --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -Djna.boot.library.path="$LIBRARY_PATH" -Djna.library.path="$LIBRARY_PATH" -Djava.library.path="$LIBRARY_PATH" -Dapplication.dir="$APP_DATA" -Dapplication.cache="$APP_DATA/cache" -Djava.io.tmpdir="$APP_DATA/tmp" -Dfile.encoding="UTF-8" -Dsun.jnu.encoding="UTF-8" -Dawt.useSystemAAFontSettings=on -Dprism.order=sw -DuseGVFS=true -Dnet.filebot.gio.GVFS="$XDG_RUNTIME_DIR/gvfs" $JVM_OPTS $JAVA_OPTS $FILEBOT_OPTS \ --classpath "/opt/projector-server/lib/*:/usr/share/filebot/jar/*" \ ---add-opens=java.desktop/sun.font=ALL-UNNAMED \ ---add-opens=java.desktop/java.awt=ALL-UNNAMED \ ---add-opens=java.desktop/sun.java2d=ALL-UNNAMED \ ---add-opens=java.desktop/java.awt.peer=ALL-UNNAMED \ ---add-opens=java.desktop/sun.awt.image=ALL-UNNAMED \ ---add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED \ ---add-opens=java.desktop/java.awt.image=ALL-UNNAMED \ --Djdk.attach.allowAttachSelf \ --Dorg.jetbrains.projector.server.enable=true \ --Dorg.jetbrains.projector.server.classToLaunch=net.filebot.Main \ --Dnet.filebot.UserFiles.fileChooser=Swing \ -org.jetbrains.projector.server.ProjectorLauncher \ -"$@" +filebot "$@" | egrep -v 'IdeState|isIdeAttached|ProjectorBatchTransformer|InjectorAgent|IDE'