mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-10 06:42:12 +01:00
Remove KCEF from unsupported containers (#129)
* Introduce Build arg to include KCEF or not * GH CI separate containers where KCEF is not supported
This commit is contained in:
26
.github/workflows/container.yml
vendored
26
.github/workflows/container.yml
vendored
@@ -173,7 +173,7 @@ jobs:
|
|||||||
if: inputs.do_upload
|
if: inputs.do_upload
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64,linux/arm64/v8,linux/ppc64le,linux/s390x,linux/riscv64
|
platforms: linux/amd64,linux/arm64/v8
|
||||||
push: true
|
push: true
|
||||||
build-args: |
|
build-args: |
|
||||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||||
@@ -189,6 +189,30 @@ jobs:
|
|||||||
ghcr.io/suwayomi/suwayomi-server:${{ inputs.tachidesk_release_type }}
|
ghcr.io/suwayomi/suwayomi-server:${{ inputs.tachidesk_release_type }}
|
||||||
ghcr.io/suwayomi/suwayomi-server:${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
ghcr.io/suwayomi/suwayomi-server:${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||||
|
|
||||||
|
# And also those that aren't supported by KCEF
|
||||||
|
# the build arg TACHIDESK_KCEF will simply not install the dependencies, so runtime will fail to load libs
|
||||||
|
# but everything else will still work
|
||||||
|
- name: Push container image to registry
|
||||||
|
if: inputs.do_upload
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
platforms: linux/ppc64le,linux/s390x,linux/riscv64
|
||||||
|
push: true
|
||||||
|
build-args: |
|
||||||
|
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||||
|
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||||
|
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||||
|
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||||
|
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||||
|
TACHIDESK_KCEF=n
|
||||||
|
tags: |
|
||||||
|
${{ inputs.tachidesk_release_type == 'stable' && 'ghcr.io/suwayomi/tachidesk:latest' || '' }}
|
||||||
|
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type }}
|
||||||
|
ghcr.io/suwayomi/tachidesk:${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||||
|
${{ inputs.tachidesk_release_type == 'stable' && 'ghcr.io/suwayomi/suwayomi-server:latest' || '' }}
|
||||||
|
ghcr.io/suwayomi/suwayomi-server:${{ inputs.tachidesk_release_type }}
|
||||||
|
ghcr.io/suwayomi/suwayomi-server:${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||||
|
|
||||||
# - name: Create slim container
|
# - name: Create slim container
|
||||||
# uses: kitabisa/docker-slim-action@v1
|
# uses: kitabisa/docker-slim-action@v1
|
||||||
# env:
|
# env:
|
||||||
|
|||||||
32
Dockerfile
32
Dockerfile
@@ -5,6 +5,7 @@ ARG TACHIDESK_RELEASE_TAG
|
|||||||
ARG TACHIDESK_FILENAME
|
ARG TACHIDESK_FILENAME
|
||||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
||||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
||||||
|
ARG TACHIDESK_KCEF=y # y or n
|
||||||
|
|
||||||
LABEL maintainer="suwayomi" \
|
LABEL maintainer="suwayomi" \
|
||||||
org.opencontainers.image.title="Suwayomi Docker" \
|
org.opencontainers.image.title="Suwayomi Docker" \
|
||||||
@@ -34,12 +35,16 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# install CEF dependencies
|
# install CEF dependencies
|
||||||
RUN apt-get update && \
|
# Ubuntu exposes libgluegen_rt.so as libgluegen2_rt.so for some reason, so rename it
|
||||||
apt-get -y install --no-install-recommends -y libxss1 libxext6 libxrender1 libxcomposite1 libxdamage1 libxkbcommon0 libxtst6 \
|
# JCEF (or Java?) also does not search /usr/lib/jni, so copy them over into one it will search
|
||||||
libjogl2-jni libgluegen2-jni libglib2.0-0t64 libnss3 libdbus-1-3 libpango-1.0-0 libcairo2 libasound2t64 \
|
RUN if [ "$TACHIDESK_KCEF" = "y" ]; then \
|
||||||
libatk-bridge2.0-0t64 libcups2t64 libdrm2 libgbm1 xvfb && \
|
apt-get update && \
|
||||||
apt-get clean && \
|
apt-get -y install --no-install-recommends -y libxss1 libxext6 libxrender1 libxcomposite1 libxdamage1 libxkbcommon0 libxtst6 \
|
||||||
rm -rf /var/lib/apt/lists/*
|
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/* || exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Create a user to run as
|
# Create a user to run as
|
||||||
RUN userdel -r ubuntu
|
RUN userdel -r ubuntu
|
||||||
@@ -60,16 +65,19 @@ 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
|
# .X11-unix must be created by root
|
||||||
RUN mkdir /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
|
# 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 if [ "$TACHIDESK_KCEF" = "y" ]; then \
|
||||||
|
mkdir /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix && \
|
||||||
|
cp /usr/lib/jni/libgluegen2_rt.so libgluegen_rt.so && \
|
||||||
|
cp /usr/lib/jni/*.so ./; \
|
||||||
|
fi
|
||||||
|
|
||||||
USER suwayomi
|
USER suwayomi
|
||||||
EXPOSE 4567
|
EXPOSE 4567
|
||||||
|
ENV TACHIDESK_KCEF=$TACHIDESK_KCEF
|
||||||
|
|
||||||
# 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"]
|
||||||
|
|
||||||
|
|||||||
@@ -89,6 +89,10 @@ 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 &
|
if [ "$TACHIDESK_KCEF" = "" ] || [ "$TACHIDESK_KCEF" = "y" ]; then
|
||||||
export DISPLAY=:0
|
Xvfb :0 -screen 0 800x680x24 -nolisten tcp >/dev/null 2>&1 &
|
||||||
|
export DISPLAY=:0
|
||||||
|
else
|
||||||
|
echo "Suwayomi built without KCEF support, not starting Xvfb"
|
||||||
|
fi
|
||||||
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