mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-23 13:02:35 +01:00
123 lines
4.0 KiB
Plaintext
123 lines
4.0 KiB
Plaintext
ARG BASE_IMAGE=none
|
|
ARG PLATFORM
|
|
|
|
FROM $BASE_IMAGE as base
|
|
|
|
ARG BASE_IMAGE
|
|
ARG BUILD_DATE
|
|
ARG PLATFORM
|
|
ARG IMAGE_VERSION
|
|
ARG IMAGE_TYPE
|
|
ARG TACHIDESK_GIT_COMMIT
|
|
ARG TACHIDESK_RELEASE_TAG
|
|
ARG TACHIDESK_FILENAME
|
|
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
|
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
|
ARG STARTUP_SCRIPT_URL
|
|
ARG SUPERVISORD_URL
|
|
ARG SUPERVISORD_TACHIDESK_URL
|
|
ARG SUPERVISORD_WEBSOCKIFY_URL
|
|
ARG SUPERVISORD_X11VNC_URL
|
|
ARG SUPERVISORD_XVFB_URL
|
|
|
|
FROM base as branch-base-alpine
|
|
RUN apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi;
|
|
|
|
FROM base as branch-base-ubuntu
|
|
RUN apt update && apt install -y --no-install-recommends \
|
|
xvfb \
|
|
xauth \
|
|
x11vnc \
|
|
x11-utils \
|
|
x11-xserver-utils \
|
|
novnc \
|
|
supervisor \
|
|
libglib2.0-0 \
|
|
libnss3 \
|
|
libnspr4 \
|
|
libatk1.0-0 \
|
|
libatk-bridge2.0-0 \
|
|
libcups2 \
|
|
libdrm2 \
|
|
libdbus-1-3 \
|
|
libatspi2.0-0 \
|
|
libx11-6 \
|
|
libxcomposite1 \
|
|
libxdamage1 \
|
|
libxext6 \
|
|
libxfixes3 \
|
|
libxrandr2 \
|
|
libgbm1 \
|
|
libxkbcommon0 \
|
|
libxcb1 \
|
|
libpango-1.0-0 \
|
|
libcairo2 \
|
|
libasound2
|
|
|
|
RUN groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi;
|
|
|
|
FROM branch-base-${PLATFORM} AS home
|
|
|
|
LABEL maintainer="suwayomi" \
|
|
org.opencontainers.image.title="Tachidesk Docker" \
|
|
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
|
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
|
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
|
org.opencontainers.image.description="This image is used to start tachidesk jar executable in a container" \
|
|
base_image=$BASE_IMAGE \
|
|
org.opencontainers.image.vendor="suwayomi" \
|
|
org.opencontainers.image.created=$BUILD_DATE \
|
|
org.opencontainers.image.version=$IMAGE_VERSION \
|
|
image_type=$IMAGE_TYPE \
|
|
platform=$PLATFORM \
|
|
"tachidesk.git_commit"=$TACHIDESK_GIT_COMMIT \
|
|
"tachidesk.release_tag"=$TACHIDESK_RELEASE_TAG \
|
|
"tachidesk.filename"=$TACHIDESK_FILENAME \
|
|
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
|
org.opencontainers.image.licenses="MPL-2.0"
|
|
|
|
RUN USER=suwayomi && \
|
|
GROUP=suwayomi && \
|
|
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.5.1/fixuid-0.5.1-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
|
|
chown root:root /usr/local/bin/fixuid && \
|
|
chmod 4755 /usr/local/bin/fixuid && \
|
|
mkdir -p /etc/fixuid && \
|
|
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
|
|
|
|
FROM home as branch-home-alpine
|
|
|
|
FROM home as branch-home-ubuntu
|
|
RUN mkdir -p /Xauthority && chown -R suwayomi:suwayomi /Xauthority
|
|
VOLUME /Xauthority
|
|
|
|
FROM branch-home-${PLATFORM} AS display
|
|
|
|
USER suwayomi:suwayomi
|
|
WORKDIR /home/suwayomi
|
|
RUN echo $TACHIDESK_FILENAME
|
|
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
|
RUN echo $TACHIDESK_DOCKER_GIT_COMMIT
|
|
RUN curl -s --create-dirs -L $STARTUP_SCRIPT_URL -o /home/suwayomi/startup/startup_script.sh
|
|
|
|
FROM display as branch-display-alpine
|
|
EXPOSE 4567
|
|
|
|
FROM display as branch-display-ubuntu
|
|
RUN curl -s --create-dirs -L $SUPERVISORD_URL -o /home/suwayomi/startup/supervisord.conf
|
|
RUN curl -s --create-dirs -L $SUPERVISORD_TACHIDESK_URL -o /home/suwayomi/startup/conf.d/tachidesk.conf
|
|
RUN curl -s --create-dirs -L $SUPERVISORD_WEBSOCKIFY_URL -o /home/suwayomi/startup/conf.d/websockify.conf
|
|
RUN curl -s --create-dirs -L $SUPERVISORD_X11VNC_URL -o /home/suwayomi/startup/conf.d/x11vnc.conf
|
|
RUN curl -s --create-dirs -L $SUPERVISORD_XVFB_URL -o /home/suwayomi/startup/conf.d/xvfb.conf
|
|
# start x11vnc and expose its port
|
|
ENV DISPLAY :0.0
|
|
# vnv server
|
|
EXPOSE 5900
|
|
# novnc
|
|
EXPOSE 5800
|
|
# Tachidesk
|
|
EXPOSE 4567
|
|
|
|
FROM branch-display-${PLATFORM} AS final
|
|
ENTRYPOINT ["fixuid"]
|
|
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|