mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-20 19:42:43 +01:00
Support KCEF (#127)
* Support KCEF Install native dependencies required by JCEF Sets up JNI libraries as required by the browser process Launch Suwayomi in a XVFB environment to fake X11 * Copy libraries to home folder instead Otherwise, other architectures are not supported Search path is : [/usr/java/packages/lib/libnativewindow_awt.so, /usr/lib64/libnativewindow_awt.so, /usr/lib64/libnativewindow_awt.so, /usr/lib/libnativewindow_awt.so, /usr/lib/libnativewindow_awt.so, /home/suwayomi/libnativewindow_awt.so, /home/suwayomi/natives/linux-amd64/libnativewindow_awt.so]
This commit is contained in:
19
Dockerfile
19
Dockerfile
@@ -33,10 +33,18 @@ RUN apt-get update && \
|
|||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install CEF dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y install --no-install-recommends -y libxss1 libxext6 libxrender1 libxcomposite1 libxdamage1 libxkbcommon0 libxtst6 \
|
||||||
|
libjogl2-jni libgluegen2-jni libglib2.0-0t64 libnss3 libdbus-1-3 libpango-1.0-0 libcairo2 libasound2t64 \
|
||||||
|
libatk-bridge2.0-0t64 libcups2t64 libdrm2 libgbm1 xvfb && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Create a user to run as
|
# Create a user to run as
|
||||||
RUN userdel -r ubuntu
|
RUN userdel -r ubuntu
|
||||||
RUN groupadd --gid 1000 suwayomi && \
|
RUN groupadd --gid 1000 suwayomi && \
|
||||||
useradd --uid 1000 --gid suwayomi --no-log-init suwayomi && \
|
useradd --uid 1000 --gid suwayomi --no-log-init -G audio,video suwayomi && \
|
||||||
mkdir -p /home/suwayomi/.local/share/Tachidesk
|
mkdir -p /home/suwayomi/.local/share/Tachidesk
|
||||||
|
|
||||||
WORKDIR /home/suwayomi
|
WORKDIR /home/suwayomi
|
||||||
@@ -52,8 +60,17 @@ COPY scripts/startup_script.sh /home/suwayomi/startup_script.sh
|
|||||||
RUN chown -R suwayomi:suwayomi /home/suwayomi && \
|
RUN chown -R suwayomi:suwayomi /home/suwayomi && \
|
||||||
chmod 777 -R /home/suwayomi
|
chmod 777 -R /home/suwayomi
|
||||||
|
|
||||||
|
# must be created by root
|
||||||
|
RUN mkdir /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
|
||||||
|
|
||||||
USER suwayomi
|
USER suwayomi
|
||||||
EXPOSE 4567
|
EXPOSE 4567
|
||||||
|
|
||||||
|
# Ubuntu exposes libgluegen_rt.so as libgluegen2_rt.so for some reason, so rename it
|
||||||
|
# JCEF (or Java?) also does not search /usr/lib/jni, so copy them over into one it will search
|
||||||
|
RUN cp /usr/lib/jni/libgluegen2_rt.so libgluegen_rt.so && \
|
||||||
|
cp /usr/lib/jni/*.so ./
|
||||||
|
|
||||||
CMD ["/home/suwayomi/startup_script.sh"]
|
CMD ["/home/suwayomi/startup_script.sh"]
|
||||||
|
|
||||||
# vim: set ft=dockerfile:
|
# vim: set ft=dockerfile:
|
||||||
|
|||||||
@@ -89,4 +89,6 @@ sed -i -r "s/server.opdsShowOnlyUnreadChapters = ([0-9]+|[a-zA-Z]+)( #)?/server.
|
|||||||
sed -i -r "s/server.opdsShowOnlyDownloadedChapters = ([0-9]+|[a-zA-Z]+)( #)?/server.opdsShowOnlyDownloadedChapters = ${OPDS_SHOW_ONLY_DOWNLOADED_CHAPTERS:-\1} #/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
sed -i -r "s/server.opdsShowOnlyDownloadedChapters = ([0-9]+|[a-zA-Z]+)( #)?/server.opdsShowOnlyDownloadedChapters = ${OPDS_SHOW_ONLY_DOWNLOADED_CHAPTERS:-\1} #/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||||
sed -i -r "s/server.opdsChapterSortOrder = \"(.*?)\"( #)?/server.opdsChapterSortOrder = \"${OPDS_CHAPTER_SORT_ORDER:-\1}\" #/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
sed -i -r "s/server.opdsChapterSortOrder = \"(.*?)\"( #)?/server.opdsChapterSortOrder = \"${OPDS_CHAPTER_SORT_ORDER:-\1}\" #/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||||
|
|
||||||
|
Xvfb :0 -screen 0 800x680x24 -nolisten tcp >/dev/null 2>&1 &
|
||||||
|
export DISPLAY=:0
|
||||||
exec java -Duser.home=/home/suwayomi -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
exec java -Duser.home=/home/suwayomi -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||||
|
|||||||
Reference in New Issue
Block a user