mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2026-01-24 04:24:12 +01:00
Initial VNC support
This commit is contained in:
82
.github/workflows/build_container_images.yml
vendored
82
.github/workflows/build_container_images.yml
vendored
@@ -30,6 +30,12 @@ env:
|
||||
build_base_image_alpine_platform: 'linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x'
|
||||
build_base_image_alpine_platform_testing: 'linux/amd64'
|
||||
startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh'
|
||||
startup_script_url_alpine: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script_alpine.sh'
|
||||
supervisord_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/supervisord.conf'
|
||||
supervisord_tachidesk_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/tachidesk.conf'
|
||||
supervisord_websockify_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/websockify.conf'
|
||||
supervisord_x11vnc_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/x11vnc.conf'
|
||||
supervisord_xvfb_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/xvfb.conf'
|
||||
tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest'
|
||||
tachidesk_webui_preview_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server-preview/releases/latest'
|
||||
|
||||
@@ -197,14 +203,20 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=ubuntu
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-ubuntu
|
||||
IMAGE_TYPE=stable
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
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 }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
test-image:stable
|
||||
outputs: type=docker,dest=/tmp/test_image_stable.tar
|
||||
@@ -246,14 +258,20 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=alpine
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-alpine
|
||||
IMAGE_TYPE=stable
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
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 }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url_alpine }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
test-image:stable-alpine
|
||||
outputs: type=docker,dest=/tmp/test_image_stable_alpine.tar
|
||||
@@ -331,8 +349,9 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
||||
PLATFORM=ubuntu
|
||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-ubuntu
|
||||
IMAGE_TYPE=stable
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }}
|
||||
@@ -340,6 +359,11 @@ jobs:
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable
|
||||
@@ -360,15 +384,21 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
||||
PLATFORM=alpine
|
||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-alpine
|
||||
IMAGE_TYPE=stable
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_stable.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url_alpine }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-alpine
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable-alpine
|
||||
@@ -464,14 +494,20 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=ubuntu
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-ubuntu
|
||||
IMAGE_TYPE=preview
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
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 }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
test-image:preview
|
||||
outputs: type=docker,dest=/tmp/test_image_preview.tar
|
||||
@@ -515,14 +551,20 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=alpine
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-alpine
|
||||
IMAGE_TYPE=preview
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
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 }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url_alpine }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
test-image:preview-alpine
|
||||
outputs: type=docker,dest=/tmp/test_image_preview_alpine.tar
|
||||
@@ -602,15 +644,21 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ needs.check_preview.outputs.build_date }}
|
||||
PLATFORM=ubuntu
|
||||
IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-ubuntu
|
||||
IMAGE_TYPE=preview
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_preview.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_preview.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_preview.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-ubuntu
|
||||
@@ -627,15 +675,21 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ needs.check_preview.outputs.build_date }}
|
||||
PLATFORM=alpine
|
||||
IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-alpine
|
||||
IMAGE_TYPE=preview
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_preview.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_preview.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_preview.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url_alpine }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-alpine
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
|
||||
24
.github/workflows/build_test_images.yml
vendored
24
.github/workflows/build_test_images.yml
vendored
@@ -22,7 +22,13 @@ env:
|
||||
build_base_image_alpine: 'alpine:3.16'
|
||||
build_base_image_alpine_platform: 'linux/amd64'
|
||||
startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh'
|
||||
startup_script_url_alpine: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script_alpine.sh'
|
||||
tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest'
|
||||
supervisord_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/supervisord.conf'
|
||||
supervisord_tachidesk_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/tachidesk.conf'
|
||||
supervisord_websockify_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/websockify.conf'
|
||||
supervisord_x11vnc_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/x11vnc.conf'
|
||||
supervisord_xvfb_conf_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/conf.d/xvfb.conf'
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -83,8 +89,9 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=ubuntu
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=develop-ubuntu
|
||||
IMAGE_TYPE=develop
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
@@ -92,6 +99,11 @@ jobs:
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
@@ -107,15 +119,21 @@ jobs:
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
PLATFORM=alpine
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=develop-alpine
|
||||
IMAGE_TYPE=develop
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
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 }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url_alpine }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
SUPERVISORD_URL=${{ env.supervisord_url }}
|
||||
SUPERVISORD_TACHIDESK_URL=${{ env.supervisord_tachidesk_conf_url }}
|
||||
SUPERVISORD_WEBSOCKIFY_URL=${{ env.supervisord_websockify_conf_url }}
|
||||
SUPERVISORD_X11VNC_URL=${{ env.supervisord_x11vnc_conf_url }}
|
||||
SUPERVISORD_XVFB_URL=${{ env.supervisord_xvfb_conf_url }}
|
||||
tags: |
|
||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop-alpine
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
|
||||
48
Dockerfile
48
Dockerfile
@@ -1,9 +1,43 @@
|
||||
FROM eclipse-temurin:11-jre-focal
|
||||
|
||||
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;
|
||||
|
||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
||||
|
||||
RUN mkdir -p /Xauthority && chown -R suwayomi:suwayomi /Xauthority
|
||||
|
||||
VOLUME /Xauthority
|
||||
|
||||
USER suwayomi
|
||||
|
||||
WORKDIR /home/suwayomi
|
||||
@@ -12,6 +46,20 @@ RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-t
|
||||
|
||||
RUN curl -L $(curl -s https://api.github.com/repos/suwayomi/tachidesk-server/releases/latest | grep -o "https.*jar") -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/supervisord.conf -o /home/suwayomi/startup/supervisord.conf
|
||||
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/conf.d/tachidesk.conf -o /home/suwayomi/startup/conf.d/tachidesk.conf
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/conf.d/websockify.conf -o /home/suwayomi/startup/conf.d/websockify.conf
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/conf.d/x11vnc.conf -o /home/suwayomi/startup/conf.d/x11vnc.conf
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/conf.d/xvfb.conf -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
|
||||
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
||||
|
||||
6
conf.d/tachidesk.conf
Normal file
6
conf.d/tachidesk.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
[program:tachidesk]
|
||||
command=java -jar "/home/suwayomi/startup/tachidesk_latest.jar"
|
||||
autorestart=true
|
||||
|
||||
stdout_logfile=%(ENV_TACHIDESK_SDOUT)s
|
||||
stdout_logfile_maxbytes=0
|
||||
3
conf.d/websockify.conf
Normal file
3
conf.d/websockify.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
[program:websockify]
|
||||
command=websockify --web /usr/share/novnc 5800 localhost:5900
|
||||
autorestart=true
|
||||
3
conf.d/x11vnc.conf
Normal file
3
conf.d/x11vnc.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
[program:x11vnc]
|
||||
command=x11vnc -forever -passwd %(ENV_VNC_PASSWORD)s -shared
|
||||
autorestart=true
|
||||
3
conf.d/xvfb.conf
Normal file
3
conf.d/xvfb.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
[program:xvfb]
|
||||
command=Xvfb :0 -auth ~/.Xauthority %(ENV_DPI_OPTIONS)s -screen 0 %(ENV_XFB_SCREEN)s -listen tcp -ac
|
||||
autorestart=true
|
||||
@@ -1,9 +1,7 @@
|
||||
ARG BASE_IMAGE=none
|
||||
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
ARG BASE_IMAGE
|
||||
ARG BUILD_DATE
|
||||
ARG PLATFORM
|
||||
ARG IMAGE_VERSION
|
||||
ARG IMAGE_TYPE
|
||||
ARG TACHIDESK_GIT_COMMIT
|
||||
@@ -12,16 +10,21 @@ 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
|
||||
|
||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else \
|
||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else echo "wrong base image"; \
|
||||
fi
|
||||
FROM $BASE_IMAGE as base
|
||||
|
||||
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
|
||||
|
||||
LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.title="Tachidesk Docker" \
|
||||
@@ -34,6 +37,7 @@ LABEL maintainer="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 \
|
||||
@@ -41,6 +45,15 @@ LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.licenses="MPL-2.0"
|
||||
|
||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
||||
|
||||
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
|
||||
@@ -48,5 +61,25 @@ RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/s
|
||||
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
|
||||
|
||||
EXPOSE 4567
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
ARG BASE_IMAGE=none
|
||||
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
ARG BASE_IMAGE
|
||||
ARG BUILD_DATE
|
||||
ARG PLATFORM
|
||||
ARG IMAGE_VERSION
|
||||
ARG IMAGE_TYPE
|
||||
ARG TACHIDESK_GIT_COMMIT
|
||||
@@ -12,16 +10,21 @@ 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
|
||||
|
||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else \
|
||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else echo "wrong base image"; \
|
||||
fi
|
||||
FROM $BASE_IMAGE as base
|
||||
|
||||
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
|
||||
|
||||
LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.title="Tachidesk Docker" \
|
||||
@@ -34,6 +37,7 @@ LABEL maintainer="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 \
|
||||
@@ -48,6 +52,14 @@ RUN USER=suwayomi && \
|
||||
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
|
||||
@@ -55,6 +67,24 @@ RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/s
|
||||
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"]
|
||||
|
||||
@@ -3,6 +3,31 @@ if [ ! -f /home/suwayomi/.local/share/Tachidesk/docker_touchfile ]; then
|
||||
touch /home/suwayomi/.local/share/Tachidesk/docker_touchfile
|
||||
curl -s --create-dirs -L https://raw.githubusercontent.com/Suwayomi/docker-tachidesk/main/server.conf -o /home/suwayomi/.local/share/Tachidesk/server.conf;
|
||||
fi
|
||||
|
||||
if [ -z "$VNC_PASSWORD" ]; then
|
||||
echo >&2 'warn: No password for VNC connection set, defaulting to "password".'
|
||||
echo >&2 ' Did you forget to add -e VNC_PASSWORD=... ?'
|
||||
export VNC_PASSWORD='password'
|
||||
fi
|
||||
|
||||
if [ -z "$XFB_SCREEN" ]; then
|
||||
export XFB_SCREEN=1024x768x24
|
||||
fi
|
||||
|
||||
if [ ! -z "$XFB_SCREEN_DPI" ]; then
|
||||
export DPI_OPTIONS="-dpi $XFB_SCREEN_DPI"
|
||||
else
|
||||
export DPI_OPTIONS=""
|
||||
fi
|
||||
|
||||
# first we need our security cookie and add it to user's .Xauthority
|
||||
mcookie | sed -e 's/^/add :0 MIT-MAGIC-COOKIE-1 /' | xauth -q
|
||||
|
||||
# now place the security cookie with FamilyWild on volume so client can use it
|
||||
# see http://stackoverflow.com/25280523 for details on the following command
|
||||
xauth nlist :0 | sed -e 's/^..../ffff/' | xauth -f /Xauthority/xserver.xauth nmerge -
|
||||
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo " ************README***********"
|
||||
@@ -15,8 +40,10 @@ echo "Tachidesk data location inside the container -> /home/suwayomi/.local/shar
|
||||
echo ""
|
||||
echo "The server is running by default configuration on http://localhost:4567"
|
||||
if [ "${LOGGING:-file}" != "file" ]; then
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||
export TACHIDESK_SDOUT="/dev/fd/1"
|
||||
else
|
||||
echo "log file location inside the container -> /home/suwayomi/.local/share/Tachidesk/logfile.log"
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar" > /home/suwayomi/.local/share/Tachidesk/logfile.log 2>&1;
|
||||
export TACHIDESK_SDOUT="/home/suwayomi/.local/share/Tachidesk/logfile.log"
|
||||
fi
|
||||
|
||||
exec supervisord -c /home/suwayomi/startup/supervisord.conf
|
||||
22
scripts/startup_script_alpine.sh
Normal file
22
scripts/startup_script_alpine.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
if [ ! -f /home/suwayomi/.local/share/Tachidesk/docker_touchfile ]; then
|
||||
touch /home/suwayomi/.local/share/Tachidesk/docker_touchfile
|
||||
curl -s --create-dirs -L https://raw.githubusercontent.com/Suwayomi/docker-tachidesk/main/server.conf -o /home/suwayomi/.local/share/Tachidesk/server.conf;
|
||||
fi
|
||||
echo ""
|
||||
echo ""
|
||||
echo " ************README***********"
|
||||
echo "-> It is essential that u read readme for ghcr.io/suwayomi/tachidesk before running this container"
|
||||
echo "-> Readme for ghcr.io/suwayomi/tachidesk is available at https://github.com/suwayomi/docker-tachidesk "
|
||||
echo " *****************************"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "Tachidesk data location inside the container -> /home/suwayomi/.local/share/Tachidesk"
|
||||
echo ""
|
||||
echo "The server is running by default configuration on http://localhost:4567"
|
||||
if [ "${LOGGING:-file}" != "file" ]; then
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||
else
|
||||
echo "log file location inside the container -> /home/suwayomi/.local/share/Tachidesk/logfile.log"
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar" > /home/suwayomi/.local/share/Tachidesk/logfile.log 2>&1;
|
||||
fi
|
||||
5
supervisord.conf
Normal file
5
supervisord.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
|
||||
[include]
|
||||
files = /home/suwayomi/startup/conf.d/*.conf
|
||||
Reference in New Issue
Block a user