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"]