Browse Source

revert ee12d9f6e1ed7f9d833d107b80301896e25d94fe and revert 843dc93228e8d86993787a8ff68399e434095c2c (#403)

* Revert "教程中取消映射browser文件夹 (#402)"

This reverts commit ee12d9f6e1ed7f9d833d107b80301896e25d94fe.

* Revert "基础镜像改为debian,直接集成安装好chromium,所有功能支持amd64,arm64,armv7三大平台。 (#399)"

This reverts commit 843dc93228e8d86993787a8ff68399e434095c2c.
devome 3 years ago
parent
commit
5cec8771ef

+ 2 - 2
docker/Dockerfile

@@ -15,8 +15,8 @@ RUN cd /tmp \
     && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
     && echo "${TZ}" > /etc/timezone \
     && rm -rf /tmp/*
-COPY entrypoint.sh /usr/bin/entrypoint.sh
-ENTRYPOINT ["tini", "entrypoint.sh"]
+COPY normal-rootfs /
+ENTRYPOINT ["/init"]
 WORKDIR /config
 VOLUME ["/config", "/media"]
 

+ 2 - 5
docker/base.Dockerfile

@@ -1,16 +1,14 @@
-FROM debian
+FROM ubuntu
 ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update \
     && apt-get install --no-install-recommends -y \
        ca-certificates \
-       chromium \
        dbus-x11 \
        dumb-init \
        ffmpeg \
        fonts-liberation \
        fonts-noto-cjk \
        fonts-noto-color-emoji \
-       gosu \
        gtk2-engines-pixbuf \
        imagemagick \
        libasound2 \
@@ -21,7 +19,6 @@ RUN apt-get update \
        libstdc++6 \
        libxss1 \
        libxtst6 \
-       tini \
        tzdata \
        wget \
        x11-apps \
@@ -33,10 +30,10 @@ RUN apt-get update \
        xorg \
        xvfb \
        yasm \
-    && ln -s /usr/bin/chromium /usr/bin/chrome \
     && apt-get clean \
     && rm -rf \
        /tmp/* \
        /var/lib/apt/lists/* \
        /var/tmp/*
+COPY --from=nevinee/s6-overlay:2.2.0.3-bin-is-softlink / /
 

+ 14 - 9
docker/entrypoint.sh → docker/normal-rootfs/etc/cont-init.d/10-fixuser

@@ -1,7 +1,18 @@
-#!/bin/bash
+#!/usr/bin/with-contenv bash
+
+## 软连接chrome
+if [[ -n $(ls /root/.cache/rod/browser 2>/dev/null) ]]; then
+    target_chrome=/root/.cache/rod/browser/$(ls -t /root/.cache/rod/browser | head -1)/chrome-linux/chrome
+    if [[ -L /usr/bin/chrome && $(readlink -f /usr/bin/chrome) != $target_chrome ]]; then
+        rm -f /usr/bin/chrome
+        ln -s $target_chrome /usr/bin/chrome &>/dev/null
+    elif [[ ! -e /usr/bin/chrome ]]; then
+        ln -s $target_chrome /usr/bin/chrome &>/dev/null
+    fi
+fi
 
 ## 重设权限
-chown -R "${PUID}:${PGID}" /config
+chown -R "${PUID}:${PGID}" /config /root
 if [[ ${PERMS} == true ]]; then
     echo "已设置 PERMS=true,重设 '/media' 目录权限为 ${PUID}:${PGID} 所有..."
     chown -R ${PUID}:${PGID} /media
@@ -15,7 +26,7 @@ if [[ -d /app/cache ]]; then
         rm -rf /config/cache &>/dev/null
     fi
     if [[ ! -e /config/cache ]]; then
-        gosu ${PUID}:${PGID} ln -sf /app/cache /config/cache
+        s6-setuidgid ${PUID}:${PGID} ln -sf /app/cache /config/cache
     fi
 else
     if [[ -L /config/cache ]]; then
@@ -23,9 +34,3 @@ else
         rm -rf /config/cache &>/dev/null
     fi
 fi
-
-## 启动
-umask ${UMASK}
-cd /config
-Xvfb -ac ${DISPLAY} -screen 0 1280x1024x16 &
-gosu ${PUID}:${PGID} chinesesubfinder

+ 6 - 0
docker/normal-rootfs/etc/services.d/chinesesubfinder/run

@@ -0,0 +1,6 @@
+#!/usr/bin/with-contenv bash
+
+umask ${UMASK}
+
+cd /config 
+exec s6-setuidgid ${PUID}:${PGID} chinesesubfinder

+ 3 - 0
docker/normal-rootfs/etc/services.d/xvfb/run

@@ -0,0 +1,3 @@
+#!/usr/bin/with-contenv bash
+
+exec Xvfb -ac ${DISPLAY} -screen 0 1280x1024x16

+ 2 - 0
docker/readme.md

@@ -8,6 +8,7 @@
 docker run -d \
     -v $(pwd)/config:/config   `# 冒号左边请修改为你想在主机上保存配置、日志等文件的路径` \
     -v $(pwd)/media:/media     `# 请修改为需要下载字幕的媒体目录,冒号右边可以改成你方便记忆的目录,多个媒体目录需要添加多个-v映射` \
+    -v $(pwd)/browser:/root/.cache/rod/browser `# 容器重启后无需再次下载 chrome,除非 go-rod 更新` \
     -e PUID=1026 \
     -e PGID=100 \
     -e PERMS=true       `# 是否重设/media权限` \
@@ -36,6 +37,7 @@ services:
     volumes:
       - ./config:/config  # 冒号左边请修改为你想在主机上保存配置、日志等文件的路径
       - ./media:/media    # 请修改为你的媒体目录,冒号右边可以改成你方便记忆的目录,多个媒体目录需要分别映射进来
+      - ./browser:/root/.cache/rod/browser    # 容器重启后无需再次下载 chrome,除非 go-rod 更新
     environment:
       - PUID=1026         # uid
       - PGID=100          # gid