Files
docker-tachidesk/scripts/dockerfiles/Test_Git_Actions-Dockerfile
Mitchell Syer c5798ad4bf Test
2023-01-03 01:04:10 +00:00

94 lines
3.4 KiB
Plaintext

ARG BASE_IMAGE=none
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 groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi;
FROM branch-base-${PLATFORM} AS home
ARG PLATFORM
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
ARG PLATFORM
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"]