mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-13 17:50:29 +08:00
133 lines
4.9 KiB
Docker
133 lines
4.9 KiB
Docker
FROM registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd-stage-0 AS builder
|
|
|
|
FROM python:3.11.11-slim-bookworm
|
|
|
|
LABEL maintainer="mofeng654321@hotmail.com"
|
|
|
|
ARG TARGETARCH
|
|
|
|
COPY --from=builder /tmp/lib/* /tmp/lib/
|
|
COPY --from=builder /tmp/ustreamer/ustreamer /tmp/ustreamer/ustreamer-dump /usr/bin/janus /usr/bin/
|
|
COPY --from=builder /tmp/wheel/*.whl /tmp/wheel/
|
|
COPY --from=builder /tmp/ustreamer/libjanus_ustreamer.so /usr/lib/ustreamer/janus/
|
|
COPY --from=builder /usr/lib/janus/transports/* /usr/lib/janus/transports/
|
|
COPY --from=builder /tmp/arm64-libs.tar.gz* /tmp/
|
|
RUN if [ ${TARGETARCH} = arm64 ] && [ -f /tmp/arm64-libs.tar.gz ]; then \
|
|
cd / && tar -xzf /tmp/arm64-libs.tar.gz && rm -f /tmp/arm64-libs.tar.gz; \
|
|
fi
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
TZ=Asia/Shanghai
|
|
|
|
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list.d/debian.sources \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
libxkbcommon-x11-0 \
|
|
nginx \
|
|
tesseract-ocr \
|
|
tesseract-ocr-eng \
|
|
tesseract-ocr-chi-sim \
|
|
iptables \
|
|
sudo \
|
|
curl \
|
|
kmod \
|
|
libmicrohttpd12 \
|
|
libjansson4 \
|
|
libssl3 \
|
|
libsofia-sip-ua0 \
|
|
libglib2.0-0 \
|
|
libopus0 \
|
|
libogg0 \
|
|
libcurl4 \
|
|
libconfig9 \
|
|
libusrsctp2 \
|
|
libwebsockets17 \
|
|
libnss3 \
|
|
libasound2 \
|
|
libdrm2 \
|
|
libx264-164 \
|
|
libyuv0 \
|
|
nano \
|
|
unzip \
|
|
&& case ${TARGETARCH} in \
|
|
amd64) \
|
|
apt-get install -y --no-install-recommends \
|
|
libavcodec59 libavformat59 libavutil57 \
|
|
libswscale6 libavfilter8 libavdevice59 \
|
|
ffmpeg vainfo \
|
|
libva2 libva-drm2 libva-x11-2 \
|
|
mesa-va-drivers mesa-vdpau-drivers \
|
|
intel-media-va-driver i965-va-driver \
|
|
;; \
|
|
arm) \
|
|
apt-get install -y --no-install-recommends \
|
|
libavcodec59 libavformat59 libavutil57 \
|
|
libswscale6 libavfilter8 libavdevice59 \
|
|
v4l-utils libv4l-0 \
|
|
;; \
|
|
arm64) \
|
|
apt-get install -y --no-install-recommends \
|
|
v4l-utils libv4l-0 libavutil57 \
|
|
libstdc++6 libavcodec59 libavformat59 \
|
|
libswscale6 libavfilter8 libavdevice59 \
|
|
libva2 libva-drm2 libva-x11-2 \
|
|
libvdpau1 ocl-icd-libopencl1 \
|
|
;; \
|
|
*) \
|
|
echo "Unsupported architecture: ${TARGETARCH}" && exit 1 \
|
|
;; \
|
|
esac \
|
|
&& cp /tmp/lib/* /lib/*-linux-*/ \
|
|
&& pip install --no-cache-dir --root-user-action=ignore --disable-pip-version-check /tmp/wheel/*.whl \
|
|
&& pip install --no-cache-dir --root-user-action=ignore --disable-pip-version-check pyfatfs \
|
|
&& if [ ${TARGETARCH} = arm ]; then ARCH=armhf; \
|
|
elif [ ${TARGETARCH} = arm64 ]; then ARCH=aarch64; \
|
|
elif [ ${TARGETARCH} = amd64 ]; then ARCH=x86_64; \
|
|
fi \
|
|
&& curl https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.$ARCH -L -o /usr/local/bin/ttyd \
|
|
&& chmod +x /usr/local/bin/ttyd \
|
|
&& mkdir -p /tmp/gostc && cd /tmp/gostc \
|
|
&& case ${TARGETARCH} in \
|
|
amd64) GOSTC_ARCH=amd64_v1 ;; \
|
|
arm) GOSTC_ARCH=arm_7 ;; \
|
|
arm64) GOSTC_ARCH=arm64_v8.0 ;; \
|
|
*) echo "Unsupported architecture for gostc: ${TARGETARCH}" && exit 1 ;; \
|
|
esac \
|
|
&& curl -L https://github.com/mofeng-git/gostc-open/releases/download/v2.0.8-beta.2/gostc_linux_${GOSTC_ARCH}.tar.gz -o gostc.tar.gz \
|
|
&& tar -xzf gostc.tar.gz \
|
|
&& mv gostc /usr/bin/ \
|
|
&& chmod +x /usr/bin/gostc \
|
|
&& cd / && rm -rf /tmp/gostc \
|
|
&& adduser kvmd --gecos "" --disabled-password \
|
|
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
|
|
&& mkdir -p /etc/kvmd_backup/override.d \
|
|
/var/lib/kvmd/msd/images \
|
|
/var/lib/kvmd/msd/meta \
|
|
/var/lib/kvmd/pst/data \
|
|
/var/lib/kvmd/msd/NormalFiles \
|
|
/opt/vc/bin \
|
|
/run/kvmd \
|
|
/tmp/kvmd-nginx \
|
|
&& touch /run/kvmd/ustreamer.sock \
|
|
&& groupadd kvmd-selfauth \
|
|
&& usermod -a -G kvmd-selfauth root \
|
|
&& apt clean \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& rm -rf /tmp/lib /tmp/wheel \
|
|
&& ustreamer -v
|
|
|
|
COPY testenv/fakes/vcgencmd scripts/kvmd* /usr/bin/
|
|
COPY extras/ /usr/share/kvmd/extras/
|
|
COPY web/ /usr/share/kvmd/web/
|
|
COPY scripts/kvmd-gencert /usr/share/kvmd/
|
|
COPY build/platform/docker /usr/share/kvmd/platform
|
|
COPY contrib/keymaps /usr/share/kvmd/keymaps
|
|
COPY kvmd/ build/init.sh /kvmd/
|
|
COPY configs/kvmd/ /etc/kvmd_backup/
|
|
COPY configs/nginx/ /etc/kvmd_backup/nginx/
|
|
COPY configs/janus/ /etc/kvmd_backup/janus/
|
|
COPY configs/hw_info/ /etc/kvmd_backup/hw_info/
|
|
COPY testenv/js/ /usr/share/janus/javascript/
|
|
|
|
ENTRYPOINT ["/kvmd/init.sh"] |